使用Java8 Files.lines的Kotlin文件行流

问题描述 投票:0回答:1

使用UTF8编码的文件。该文件如下:

41 18467
6334 26500
15724 19169
11478 29358
24464 26962

处理以下代码打印空行:

private fun doTask(sPath: String) {
   Files.lines(Paths.get(sPath), StandardCharsets.UTF_8)
      .forEach{println()}
}

帮助修复代码。有没有涉及Java8库的好的唯一Kotlin解决方案?

string kotlin stream
1个回答
3
投票

您正在打印空白行,因为您的println()电话没有被告知打印任何东西。如果你想打印每一行,你必须将it(lambda中的默认参数,如果你没有指定)传递给println

Files.lines(Paths.get(sPath), StandardCharsets.UTF_8)
    .forEach{println(it)}

您还可以使用Kotlin的File.readLines()扩展(默认为UTF-8)来简化此操作:

File(sPath).readLines().forEach { println(it) }
© www.soinside.com 2019 - 2024. All rights reserved.