English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы с помощью примеров изучим Java BufferedWriter и его методы.
Класс BufferedWriter из пакета java.io может использоваться вместе с другими写入ателями для более эффективной записи данных (в виде символов).
Он наследует абстрактный класс Writer.
BufferedWriter поддерживает внутреннийбуфер из 8192 символов.
Во время операции записи символы будут записываться в внутренний буфер, а не на диск. Как только буфер заполнится или写入атель будет закрыт, все символы в буфере будут записаны на диск.
Таким образом, уменьшается количество коммуникаций с диском. Это и есть причина, почему использование BufferedWriter для записи символов быстрее.
Чтобы создать BufferedWriter,我们必须 сначала импортировать пакет java.io.BufferedWriter. После импорта пакета можно создать буферный写入атель.
//создание FileWriter FileWriter file = new FileWriter(String name); //создание BufferedWriter BufferedWriter buffer = new BufferedWriter(file);
В приведенном выше примере мы создали BufferedWriter с именем buffer и FileWriter с именем file.
Здесь, внутренний буфер BufferedWriter по умолчанию составляет 8192 символов. Но мы также можем указать размер внутреннего буфера.
//Создание BufferedWriter с заданным размером внутреннего буфера BufferedWriter buffer = new BufferedWriter(file, int size);
буфер поможет более эффективно записывать символы в файл.
класс BufferedWriter предоставляет различные методы, существующие в Writer.
write() - записывает одиночный символ в внутренний буфер写入
write(char[] array) - записывает указанные символы из массива в写入
write(String data) - записывает указанную строку в写入
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 FileWriter file = new FileWriter("output.txt"); //создание BufferedWriter BufferedWriter output = new BufferedWriter(file); //запись строки в файл output.write(data); //закрытие writer output.close(); } catch (Exception e) { e.getStackTrace(); } } }
В примере выше мы создали буферный写入 и файловый写入 с именем output. Буферный写入 свяжен с файлом output.txt.
FileWriter file = new FileWriter("output.txt"); BufferedWriter output = new BufferedWriter(file);
Чтобы записать данные в файл, мы используем метод write().
Здесь, когда мы запускаем программу,output.txtФайл будет содержать следующее содержимое.
This is a line of text inside the file.
Чтобы очистить внутренний буфер, мы можем использовать метод flush(). Этот метод принудительно записывает все данные из буфера в целевой файл.
Например, предположим, что у нас есть файл с именемoutput.txtпустой файл.
import java.io.FileWriter; import java.io.BufferedWriter; public class Main { public static void main(String[] args) { String data = "This is a demo of the flush method"; try { //создание FileWriter FileWriter file = new FileWriter("flush.txt"); //создание BufferedWriter BufferedWriter output = new BufferedWriter(file); //запись данных в файл output.write(data); //обновление данных в целевую output.flush(); System.out.println("данные обновляются в файле."); output.close(); } catch(Exception e) { e.getStackTrace(); } } }
результат вывода
данные обновляются в файле.
когда мы запускаем программу, файлoutput.txtтекст, представленный строковыми данными, заполнен.
Чтобы закрыть буферized writer, мы можем использовать метод close(). После вызова метода close() writer больше не может写入 данные.
метод | описание |
---|---|
newLine() | вставка новой строки для автора |
append() | вставка указанного символа в текущий записыватель |