Функция printWriter

Функция printWriter создает объект PrintWriter для записи текстовых данных в файл с буферизацией. Поддерживает форматированный вывод различных типов данных, включая строки, числа и логические значения. Автоматически закрывает ресурсы при использовании в блоке use.

Импорт

kotlinimport java.io.File
import java.io.PrintWriter

Синтаксис

kotlinfun File.printWriter(): PrintWriter
kotlinfun File.printWriter(charset: Charset): PrintWriter
kotlinfun File.printWriter(
  charset: Charset,
  append: Boolean
): PrintWriter

Пример

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

kotlinval file = File("output.txt")

file.printWriter().use { writer ->
  writer.println("Hello")
  writer.println("World")
  writer.print(123)
  writer.print(" ")
  writer.print(true)
}

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

kotlinHello
World
123 true

Пример

Запишем данные в файл с указанием кодировки UTF-8 и режимом дописывания:

kotlinval file = File("data.log")

file.printWriter(Charsets.UTF_8, true).use { writer ->
  writer.println("New log entry")
  writer.printf("Time: %tT", System.currentTimeMillis())
}

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

kotlinNew log entry
Time: 14:30:25

Пример

Запишем различные типы данных с форматированием в файл report.txt:

kotlinval file = File("report.txt")
val price = 99.99
val quantity = 5

file.printWriter().use { writer ->
  writer.println("Product Report")
  writer.println("==============")
  writer.printf("Price: $%.2f%n", price)
  writer.printf("Quantity: %d%n", quantity)
  writer.printf("Total: $%.2f%n", price * quantity)
}

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

kotlinProduct Report
==============
Price: $99.99
Quantity: 5
Total: $499.95

Пример

Создадим PrintWriter без автоматического закрытия и используем его для многократной записи:

kotlinval file = File("multi_write.txt")
val writer = file.printWriter()

try {
  writer.println("First line")
  writer.println("Second line")
  writer.flush()
  
  writer.println("Third line")
} finally {
  writer.close()
}

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

kotlinFirst line
Second line
Third line

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

  • функцию bufferedWriter,
    которая создает буферизованный writer для записи
  • функцию writeText,
    которая записывает текст в файл одной операцией
  • функцию writeLines,
    которая записывает список строк в файл
  • класс File,
    который представляет файл или директорию