Функция bufferedWriter
Функция bufferedWriter создает объект BufferedWriter
для записи текстовых данных в файл с использованием буферизации.
Это повышает производительность при записи большого количества данных,
так как уменьшается количество непосредственных обращений к файловой системе.
Функция принимает необязательные параметры: кодировку charset
и размер буфера bufferSize.
Импорт
import java.io.File
import java.io.BufferedWriter
Синтаксис
fun File.bufferedWriter(
charset: Charset = Charsets.UTF_8,
bufferSize: Int = DEFAULT_BUFFER_SIZE
): BufferedWriter
Пример
Запишем несколько строк в файл output.txt
с использованием буферизации:
val 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 для автоматического
закрытия писателя:
val 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:
val file = File("output.txt")
file.bufferedWriter(Charsets.ISO_8859_1).use { writer ->
writer.write("Special characters: äöü")
writer.newLine()
writer.write("Numbers: 12345")
}
Пример
Запись с пользовательским размером буфера:
val file = File("large_output.txt")
file.bufferedWriter(bufferSize = 8192).use { writer ->
for (i in 1..1000) {
writer.write("Line $i")
writer.newLine()
}
}
Пример
Запись массива строк в файл:
val 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 после выполнения:
abcde
12345
test
data
Смотрите также
-
функцию
bufferedReader,
для буферизованного чтения из файла -
функцию
writeText,
для простой записи текста в файл -
функцию
writeLines,
для записи списка строк в файл -
функцию
printWriter,
для форматированного вывода в файл