Функция bufferedWriter

Функция bufferedWriter создает объект BufferedWriter для записи текстовых данных в файл с использованием буферизации. Это повышает производительность при записи большого количества данных, так как уменьшается количество непосредственных обращений к файловой системе. Функция принимает необязательные параметры: кодировку charset и размер буфера bufferSize.

Импорт

kotlinimport java.io.File
import java.io.BufferedWriter

Синтаксис

kotlinfun File.bufferedWriter(
  charset: Charset = Charsets.UTF_8,
  bufferSize: Int = DEFAULT_BUFFER_SIZE
): BufferedWriter

Пример

Запишем несколько строк в файл output.txt с использованием буферизации:

kotlinval file = File("output.txt")
val writer: BufferedWriter = file.bufferedWriter()

writer.write("Hello")
writer.newLine()
writer.write("World")
writer.newLine()
writer.write("12345")

writer.close()

Пример

Использование блока use для автоматического закрытия писателя:

kotlinval file = File("output.txt")

file.bufferedWriter().use { writer ->
  writer.write("Line 1")
  writer.newLine()
  writer.write("Line 2")
  writer.newLine()
  writer.write("Line 3")
}

Пример

Запись с указанием кодировки Charsets.ISO_8859_1:

kotlinval file = File("output.txt")

file.bufferedWriter(Charsets.ISO_8859_1).use { writer ->
  writer.write("Special characters: äöü")
  writer.newLine()
  writer.write("Numbers: 12345")
}

Пример

Запись с пользовательским размером буфера:

kotlinval file = File("large_output.txt")

file.bufferedWriter(bufferSize = 8192).use { writer ->
  for (i in 1..1000) {
    writer.write("Line $i")
    writer.newLine()
  }
}

Пример

Запись массива строк в файл:

kotlinval lines = listOf("abcde", "12345", "test", "data")
val file = File("lines.txt")

file.bufferedWriter().use { writer ->
  for (line in lines) {
    writer.write(line)
    writer.newLine()
  }
}

Содержимое файла lines.txt после выполнения:

kotlinabcde
12345
test
data

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

  • функцию bufferedReader,
    для буферизованного чтения из файла
  • функцию writeText,
    для простой записи текста в файл
  • функцию writeLines,
    для записи списка строк в файл
  • функцию printWriter,
    для форматированного вывода в файл