Czytam tekst z java BufferedReader
tak:"zamknij" strumień?
Stream.continually(reader.readLine).takeWhile {
case null => reader.close; false
case _ => true
}
To działa, ale po prostu wydaje się nieco niezdarny do mnie. Szkoda, że nie było czegoś takiego jak .whenDone
na Stream
, tak, żebym mógł powiedzieć, aby zamknąć czytnik po tym, jak cała rzecz jest zużywana, a następnie po prostu zrobić .takeWhile(_ != null)
.
Czy jest jakiś sposób, o którym nie wiem? Lub, być może, lepszy sposób na uzyskanie strumienia linii z java Reader
(jeśli byłby to InputStream
, mógłbym na przykład zrobić Source.fromInputStream
, ale nie wydaje się być odpowiednikiem dla Reader
... uwaga, że to tylko częściowo rozwiązałoby problem, ponieważ można chcieć zrobić to samo z innymi "zamykanymi" obiektami - na przykład: ResultSet
)?