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

Функция bufferedReader

Функция bufferedReader создает объект BufferedReader для эффективного чтения текстовых файлов. Буферизация значительно увеличивает производительность при чтении больших файлов. Функция автоматически закрывает поток после использования благодаря расширению use.

Импорт

import java.io.File import java.io.BufferedReader

Синтаксис

fun File.bufferedReader( charset: Charset = Charsets.UTF_8 ): BufferedReader
fun File.bufferedReader( charset: Charset = Charsets.UTF_8, bufferSize: Int = DEFAULT_BUFFER_SIZE ): BufferedReader

Пример

Прочитаем весь файл data.txt с помощью bufferedReader:

val file = File("data.txt") val reader: BufferedReader = file.bufferedReader() val content: String = reader.use { it.readText() } println(content)

Результат выполнения кода:

String "abcde"

Пример

Прочитаем файл построчно с указанием кодировки:

val file = File("data.txt") val reader = file.bufferedReader(Charsets.ISO_8859_1) reader.useLines { lines -> lines.forEach { line -> println(line) } }

Результат выполнения кода:

String "line 1" String "line 2" String "line 3"

Пример

Прочитаем файл с использованием кастомного размера буфера:

val file = File("large_data.txt") val reader = file.bufferedReader(Charsets.UTF_8, 8192) var lineCount = 0 reader.use { r -> while (r.readLine() != null) { lineCount++ } } println("Total lines: $lineCount")

Результат выполнения кода:

String "Total lines: 150"

Пример

Чтение файла по частям с помощью read:

val file = File("data.bin") val reader = file.bufferedReader() val buffer = CharArray(1024) var bytesRead: Int reader.use { r -> while (r.read(buffer).also { bytesRead = it } != -1) { val chunk = String(buffer, 0, bytesRead) println("Read chunk: ${chunk.length} chars") } }

Результат выполнения кода:

String "Read chunk: 1024 chars" String "Read chunk: 512 chars"

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

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