НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
590 of 1310 menu

Функция 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") } }

Смотрите также

  • функцию readText,
    которая читает весь файл в одну строку
  • функцию readLines,
    которая читает все строки файла в список
  • функцию useLines,
    которая также читает файл построчно, но возвращает результат
  • класс File,
    который представляет файл или директорию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить