Tôi đọc văn bản từ một java BufferedReader
như thế này:"đóng" một luồng?
Stream.continually(reader.readLine).takeWhile {
case null => reader.close; false
case _ => true
}
này hoạt động, nhưng chỉ có vẻ một chút vụng về với tôi. Tôi muốn có một cái gì đó như .whenDone
trên Stream
, để tôi có thể yêu cầu nó đóng trình đọc sau khi toàn bộ điều được tiêu thụ, và sau đó chỉ cần .takeWhile(_ != null)
.
Có cách nào để làm điều đó mà tôi không biết? Hoặc, có lẽ, một cách tốt hơn để có được một dòng các dòng từ một java Reader
(nếu nó là một InputStream
, tôi chỉ có thể làm Source.fromInputStream
ví dụ, nhưng có vẻ không tương đương với Reader
... lưu ý, rằng điều này sẽ chỉ giải quyết một phần vấn đề, bởi vì người ta có thể muốn làm điều tương tự với các đối tượng "có thể đóng" khác - ví dụ: ResultSet
)?