Java BufferedWriter: эффективный символьный I/O
Java BufferedWriter
Класс BufferedWriter в пакете java.io оборачивает другой Writer для обеспечения эффективного символьного вывода. Буферизация данных в памяти снижает затратные дисковые I/O операции.
Как работает BufferedWriter
Класс поддерживает внутренний буфер 8192 символов (размер по умолчанию). При записи данные сначала помещаются в буфер. Когда буфер заполняется или писатель закрывается, содержимое сбрасывается в базовый поток.
Эта стратегия минимизирует количество дисковых записей, делая символьный вывод заметно быстрее.
Создание BufferedWriter
Импортируйте класс и создайте BufferedWriter, оборачивая FileWriter (или любой другой Writer):
FileWriter file = new FileWriter("output.txt");
BufferedWriter buffer = new BufferedWriter(file);
Буфер по умолчанию 8192 символа, но можно задать свой размер:
BufferedWriter buffer = new BufferedWriter(file, 16384); // 16KB буфер
Методы BufferedWriter
write()
write(int c)— записывает один символ.write(char[] cbuf)— записывает массив символов.write(String str)— записывает строку.
Пример: запись в файл
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the data in the output file";
try {
FileWriter file = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(file);
out.write(data);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Результирующий output.txt содержит указанную строку.
flush()
Принудительно сбрасывает буферизованные данные в базовый поток немедленно.
out.flush(); // записывает буферизованные символы в файл
close()
Закрывает писатель и освобождает системные ресурсы. После close() писатель нельзя использовать снова.
Другие полезные методы
| Метод | Описание |
|---|---|
newLine() | Вставляет платформозависимый разделитель строки. |
append(char c) | Добавляет один символ. |
append(CharSequence csq) | Добавляет последовательность символов. |
Полный API: официальная документация Java BufferedWriter.
java
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения
- Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
- Освоение Java BufferedReader: эффективная обработка символьных потоков
- Освоение Java Generics: создание переиспользуемого, типобезопасного кода
- Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление