2012-05-18 109 views
10

我得到了一個uri(java.net.URI),如http://www.example.com。我如何在Java中以流的形式打開它?從uri打開流

我真的必須改用URL類嗎?

+0

爲什麼你不希望使用URL類? – Andy

+0

URL的問題是equals和hashcode會阻止網絡查找的操作。 Url似乎也缺少一種方法來標準化一個網址,並將相對網址轉換爲絕對網址。 – MTilsted

回答

9

您必須創建一個新的URL對象,然後在URL實例上打開流。下面是一個例子。

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

謝謝。 (我剛剛接受了第一個正確答案)。 – MTilsted

+6

uri.toURL()沒有顯示在我的android studio項目中? –

+0

相同的uri.toURL()沒有顯示在我的android工作室 – Wardruna

5

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

是的,你必須使用URL類以某種方式或其他。

1

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