【发布时间】:2019-07-27 15:48:08
【问题描述】:
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 释放所有文件系统资源的能力感兴趣。
提前致谢。
【问题讨论】:
-
kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/java.io.-file/…。或者你可以在 Kotlin 中使用与 Java 中相同的东西。
-
首先,在Java中使用
try-with-resources!! -
我已经尝试过 File::useLines 但它没有返回序列,当我“欺骗”它返回一个序列 () 时,它不能使用,因为资源已关闭(如 useLines 中所述)
-
整个想法是使用块内部的序列,以确保它始终安全关闭,这与您的 Java 代码所做的不同。但同样,您可以在 Kotlin 中使用 Streams。
-
@BoristheSpider - 你是对的,Stream 实现了 AutoCloseable。但是这里的 Java 代码只是为了说明目的
标签: kotlin