Функция forEachLine
Функция forEachLine выполняет построчное чтение файла
и обработку каждой прочитанной строки с помощью callback-функции.
Принимает параметр charset для указания кодировки файла
(по умолчанию используется UTF-8) и callback-функцию,
которая будет вызвана для каждой строки файла.
Импорт
import java.io.File
Синтаксис
fun forEachLine(charset: Charset = Charsets.UTF_8, action: (String) -> Unit)
Пример
Прочитаем файл data.txt и выведем каждую строку в консоль:
val file = File("data.txt")
file.forEachLine { line ->
println(line)
}
Пример
Посчитаем количество строк в файле data.txt:
var lineCount = 0
val file = File("data.txt")
file.forEachLine {
lineCount++
}
println("Total lines: $lineCount")
Результат выполнения кода:
Total lines: 42
Пример
Прочитаем файл в кодировке Windows-1251:
val file = File("data_win1251.txt")
file.forEachLine(Charset.forName("Windows-1251")) { line ->
println(line)
}
Пример
Соберем все строки файла в список:
val linesList = mutableListOf<String>()
val file = File("data.txt")
file.forEachLine { line ->
linesList.add(line)
}
println(linesList)
Результат выполнения кода:
['line1', 'line2', 'line3', 'line4', 'line5']
Пример
Найдем строки, содержащие определенное слово:
val searchWord = "error"
val file = File("log.txt")
file.forEachLine { line ->
if (line.contains(searchWord)) {
println("Found: $line")
}
}