2015-05-19 9 views
9

voglio convertire un InputStream is in un Stream<String> stream dato un Charset cs in modo tale che stream consiste delle linee di is. Inoltre, una riga di is non deve essere letta immediatamente ma solo nel caso in cui sia necessario il stream.Converti InputStream in Streaming <String> dato un set di caratteri

+0

E che cosa hai provato? Le domande devono mostrare lo sforzo includendo un tentativo o una ricerca –

+2

Deve essere 'InputStream'? Se avete intenzione di leggere i file, potete usare 'Files.lines (Path path, Charset cs)'. Puoi dare un'occhiata al codice sorgente di questo metodo per capire la tua soluzione. – Pshemo

+0

Nel mio caso è InputStream proveniente da 'HttpURLConnection # getInputStream()'. –

risposta

12

penso che si può provare:

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

@Pshemo Grazie per la modifica! :) –

+0

C'è un modo per disconnettere automaticamente HttpURLConnection dopo che è stato letto l'InputStream completo? –

+1

Puoi leggere lo stream in un'istruzione 'try-with-resources' ed eventualmente aggiungere un blocco' finally' che chiama 'disconnect()' sull'oggetto 'HttpURLConnection': http://docs.oracle.com/javase/ 7/docs/api/java/net/HttpURLConnection.html # disconnect() –

Problemi correlati