English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Класс Java BufferedWriter

В этом руководстве мы с помощью примеров изучим Java BufferedWriter и его методы.

Класс BufferedWriter из пакета java.io может использоваться вместе с другими写入ателями для более эффективной записи данных (в виде символов).

Он наследует абстрактный класс Writer.

Как работает BufferedWriter

BufferedWriter поддерживает внутреннийбуфер из 8192 символов.

Во время операции записи символы будут записываться в внутренний буфер, а не на диск. Как только буфер заполнится или写入атель будет закрыт, все символы в буфере будут записаны на диск.

Таким образом, уменьшается количество коммуникаций с диском. Это и есть причина, почему использование BufferedWriter для записи символов быстрее.

Создание 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

класс BufferedWriter предоставляет различные методы, существующие в Writer.

метод write()

  • write() - записывает одиночный символ в внутренний буфер写入

  • write(char[] array) - записывает указанные символы из массива в写入

  • write(String data) - записывает указанную строку в写入

Пример:写入文件的BufferedWriter

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()

Чтобы очистить внутренний буфер, мы можем использовать метод 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текст, представленный строковыми данными, заполнен.

метод close()

Чтобы закрыть буферized writer, мы можем использовать метод close(). После вызова метода close() writer больше не может写入 данные.

другие методы BufferedWriter

методописание
newLine()вставка новой строки для автора
append()вставка указанного символа в текущий записыватель