在Kotlin中是否有等效的Java Files.lines()?
我想转换的Java代码类似于
Stream<String> lines =
Files.list(Paths.get(dir_in))
.flatMap((Files::lines));
// do something with my stream
lines.close();
我对通过关闭Stream释放所有文件系统资源的能力感兴趣。
谢谢。
答案 0 :(得分:0)
我会使用File#bufferedReader
它返回一个BufferedReader
,您可以(a)在需要时关闭它,并且(b)使用BufferedReader#lines
获取行流。
这是一些示例代码。
val buffer: BufferedReader = File("hi.txt").bufferedReader()
val stream: Stream<String> = buffer.lines()
stream.forEach { println(it) }
buffer.close()
您应该尽可能使用File#useLines
函数,因为它会自动关闭蒸汽。