Функция readLines
Функция readLines читает все строки из файла
и возвращает их в виде списка List.
Каждый элемент списка представляет одну строку файла.
Символы перевода строки при этом не включаются в результат.
По умолчанию используется кодировка UTF-8.
Импорт
import java.io.File
Синтаксис
fun File.readLines(): List<String>
fun File.readLines(charset: Charset): List<String>
Пример
Прочитаем все строки из файла data.txt:
val file = File("data.txt")
val lines: List<String> = file.readLines()
for (line in lines) {
println(line)
}
Результат выполнения кода для файла с содержимым:
line one
line two
line three
List<String> ['line one', 'line two', 'line three']
Пример
Прочитаем все строки из файла с указанием кодировки Charsets.ISO_8859_1:
val file = File("data.txt")
val lines = file.readLines(Charsets.ISO_8859_1)
println(lines)
Результат выполнения кода:
List<String> ['line one', 'line two', 'line three']
Пример
Получим количество строк в файле:
val file = File("data.txt")
val lineCount = file.readLines().size
println("File contains $lineCount lines")
Результат выполнения кода:
String "File contains 3 lines"
Пример
Проверим, содержит ли файл определенную строку:
val file = File("data.txt")
val containsHello = file.readLines().any { it.contains("hello") }
println("File contains 'hello': $containsHello")
Результат выполнения кода:
String "File contains 'hello': false"
Примечания
Функция readLines читает весь файл в память сразу,
что может быть неэффективно для больших файлов.
Для обработки больших файлов построчно рекомендуется
использовать forEachLine или useLines.
Если файл не существует, будет выброшено исключение NoSuchFileException.
Смотрите также
-
функцию
forEachLine,
которая обрабатывает строки файла построчно -
функцию
useLines,
которая предоставляет последовательность строк для обработки -
функцию
readText,
которая читает весь файл как одну строку -
функцию
writeLines,
которая записывает список строк в файл