Chcę przekształcić InputStream is
w Stream<String> stream
otrzymujących Charset cs
w taki sposób, że stream
składa się z linii is
. Ponadto linia is
nie powinna być odczytywana natychmiast, ale tylko w przypadku, gdy potrzebuje tego stream
.Konwersja InputStream do strumienia <String> danym ciągiem znaków
Odpowiedz
Myślę, że można spróbować:
Stream<String> lines = new BufferedReader(new InputStreamReader(is, cs)).lines();
@Pshemo Dzięki za edycję! :) –
Czy istnieje sposób automatycznego rozłączenia HttpURLConnection po przeczytaniu całego InputStream? –
Możesz odczytać strumień w instrukcji 'try-with-resources' i ewentualnie dodać blok' finally', który wywołuje 'disconnect()' w obiekcie 'HttpURLConnection': http://docs.oracle.com/javase/ 7/docs/api/java/net/HttpURLConnection.html # disconnect() –
i co próbowałeś? Pytania powinny pokazywać wysiłek, włączając próbę lub badania. –
Czy musi to być 'InputStream'? Jeśli zamierzasz czytać pliki, możesz użyć 'Files.lines (Path path, Charset cs)'. Możesz rzucić okiem na kod źródłowy tej metody, aby znaleźć rozwiązanie. – Pshemo
W moim przypadku jest to InputStream pochodzący z 'HttpURLConnection # getInputStream()'. –