2012-05-18 20 views
10

Ho ricevuto un uri (java.net.URI) come http://www.example.com. Come posso aprirlo come flusso in Java?Apri stream da uri

Devo davvero usare la classe URL?

+0

Perché non si desidera utilizzare la classe URL? – Andy

+0

Il problema con l'URL è che equals and hashcode stanno bloccando le operazioni che fanno la ricerca in rete. Url sembra anche che manchi un metodo per normalizzare un url e convertire un url relativo in un url assoluto. – MTilsted

risposta

9

Sarà necessario creare un nuovo oggetto URL e quindi aprire lo streaming sull'istanza URL. Un esempio è sotto.

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

Grazie. (Ho appena accettato la prima risposta corretta). – MTilsted

+6

uri.toURL() non viene visualizzato nel mio progetto di Android Studio? –

+0

stesso uri.toURL() non viene visualizzato nel mio studio Android – Wardruna

0

È possibile utilizzare URLConnection per leggere i dati per l'URL specificato. - URLConnection

5

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

Sì, è necessario utilizzare la classe URL in un modo o l'altro.

1

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