Kotlin поток строк файла с использованием Java8 Files.lines - PullRequest
0 голосов
/ 23 февраля 2019

Используется файл с кодировкой 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()}
}

Помогите исправить код.Есть ли хорошее решение только для Kotlin без использования библиотеки Java8?

1 Ответ

0 голосов
/ 23 февраля 2019

Вы печатаете пустые строки, потому что вашему вызову println() не велено ничего печатать.Если вы хотите напечатать каждую строку, вам нужно будет передать it (аргумент по умолчанию в лямбда-выражении, если он не указан) вместе с println:

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

. Вы можететакже немного упростим это, используя расширение File.readLines() от Kotlin, которое по умолчанию UTF-8:

File(sPath).readLines().forEach { println(it) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...