2015-05-19 75 views
9

我想一個 InputStream is轉換成 Charset cs給予 Stream<String> stream以這樣的方式 streamis的線條。此外, is行不應該立即閱讀,但只有在 stream需要它。 轉換成InputStream中給出字符集

+0

還有,你試過嗎?問題應該通過包括嘗試或研究來顯示努力 –

+2

它是否必須是'InputStream'?如果你要讀取文件,那麼你可以使用'Files.lines(Path path,Charset cs)'。你可以看看這個方法的源代碼來找出你的解決方案。 – Pshemo

+0

在我的情況下,它是來自'HttpURLConnection#getInputStream()'的InputStream。 –

回答

12

我想你可以嘗試:

Stream<String> lines = new BufferedReader(new InputStreamReader(is, cs)).lines(); 
+0

@Pshemo感謝您的編輯! :) –

+0

有沒有辦法在完成InputStream讀取後自動斷開HttpURLConnection? –

+1

您可以在'try-with-resources'語句中讀取流,並且可能添加一個'finally'塊來調用'HttpURLConnection'對象上的disconnect()':http://docs.oracle.com/javase/ 7/docs/api/java/net/HttpURLConnection.html#disconnect() –