2012-05-18 6 views
10

Ich habe eine URI (java.net.URI) wie http://www.example.com. Wie öffne ich es als Stream in Java?Open Stream von uri

Muss ich stattdessen wirklich die URL-Klasse verwenden?

+0

Warum Sie nicht wollen, die URL-Klasse benutzen? – Andy

+0

Das Problem mit URL ist, dass equals und hashcode blockierende Operationen sind, die eine Netzwerksuche durchführen. URL scheint auch eine Methode zu fehlen, eine URL zu normalisieren und eine relative URL zu einer absoluten URL zu konvertieren. – MTilsted

Antwort

9

Sie müssen ein neues URL Objekt erstellen und dann den Stream auf der URL Instanz öffnen. Ein Beispiel ist unten.

try { 

    URL url = uri.toURL(); //get URL from your uri object 
    InputStream stream = url.openStream(); 

} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} catch (URISyntaxException e) { 
    e.printStackTrace(); 
}catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

Danke. (Ich habe gerade die erste richtige Antwort akzeptiert). – MTilsted

+6

uri.toURL() wird nicht in meinem Android Studio-Projekt angezeigt? –

+0

selbe uri.toURL() wird nicht in meinem Android-Studio angezeigt – Wardruna

0

Sie können URLConnection verwenden, um Daten für die angegebene URL zu lesen. - URLConnection

5

URLConnection connection = uri.toURL().openConnection()

Ja, müssen Sie die URL Klasse in der einen oder der anderen verwenden.

1

uri.toURL().openStream() oder uri.toURL().openConnection().getInputStream()

Verwandte Themen