Освоение Java PrintWriter: возможности, методы и практические примеры
Освоение Java PrintWriter
Класс PrintWriter из java.io предназначен для записи символьных данных в текстовые файлы или другие выходные потоки. Он расширяет Writer и предлагает удобные методы форматирования.
В отличие от других писателей, PrintWriter автоматически преобразует примитивные типы (int, float, char и т.д.) в текст перед записью. Он также никогда не выбрасывает IOException; ошибки обнаруживаются через checkError().
Авто-сброс (auto-flush) — ключевая особенность: если включён, каждый вызов println() или printf() принудительно сбрасывает буфер в базовый поток.
Как работает PrintWriter
PrintWriter пишет форматированный текст в базовый Writer или OutputStream. Конструктор принимает флаг autoFlush и, опционально, Charset для кодировки.
Создание PrintWriter
Импортируйте класс:
import java.io.PrintWriter;
1. Из существующего Writer
FileWriter file = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(file, true); // autoFlush = true
2. Из OutputStream
FileOutputStream fos = new FileOutputStream("output.txt");
PrintWriter out = new PrintWriter(fos, true);
3. Непосредственно из имени файла
PrintWriter out = new PrintWriter("output.txt", true);
4. С указанием кодировки
import java.nio.charset.Charset;
PrintWriter out = new PrintWriter("output.txt", true, Charset.forName("UTF-8"));
Использование Charset гарантирует запись текста с нужной кодировкой.
Ключевые методы
print() и println()
Эти методы записывают «сырой» или завершённый переводом строки текст:
print(obj)— записывает строковое представлениеobjбез перевода строки.println(obj)— записывает строку и добавляет системный разделитель строки.
printf()
Семейство printf поддерживает синтаксис Formatter Java. Пример:
out.printf("I am %d years old.", 25);
Другие полезные методы
| Метод | Описание |
|---|---|
close() | Закрывает поток и освобождает ресурсы. |
checkError() | Возвращает true, если произошла ошибка записи. |
append(CharSequence) | Добавляет заданную последовательность в писатель. |
Практический пример
Полная запускаемая программа, пишущая форматированный текст в output.txt через printf():
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrintWriterDemo {
public static void main(String[] args) {
try (PrintWriter out = new PrintWriter(new FileWriter("output.txt"), true)) {
int age = 25;
out.printf("I am %d years old.\n", age);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Программа создаёт output.txt со строкой:
I am 25 years old.
Дополнительное чтение
Официальная спецификация: Java PrintWriter API и документация Charset.
java
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Наследование в Java: концепции, типы и практические примеры
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения
- Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
- Освоение Java Generics: создание переиспользуемого, типобезопасного кода
- Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление