我正在使用Java BufferedReader
读取文本,示例代码如下:
Stream.continually(reader.readLine).takeWhile {
case null => reader.close; false
case _ => true
}
这个方法可以工作,但对我来说似乎有点笨拙。我希望 Stream
上有类似 .whenDone
的东西,这样我就可以告诉它在全部被消耗完之后关闭读取器,然后只需执行 .takeWhile(_ != null)
。
我不知道是否还有其他方法可以实现这个功能?或者,从java的Reader
获取一些行的流的更好的方法(如果是InputStream
,例如,我只需执行Source.fromInputStream
,但是似乎没有相应的Reader
方法…请注意,虽然这只能部分解决问题,因为你可能想对其他 "可关闭" 对象执行相同的操作——例如ResultSet
)?