Java BufferedWriter 类

java.io包中的BufferedWriter类可以与其他writer一起使用,更高效地写入(字符形式的)数据。

它继承自抽象类Writer

The BufferedWriter class is a subclass of Java Writer.


BufferedWriter的工作原理

BufferedWriter维护一个8192个字符的内部缓冲区。

在写入操作期间,字符被写入内部缓冲区而不是磁盘。一旦缓冲区被填满或writer被关闭,缓冲区中的所有字符将被写入磁盘。

因此,与磁盘的通信次数减少了。这就是为什么使用BufferedWriter写入字符更快的原因。


创建BufferedWriter

为了创建BufferedWriter,我们必须首先导入java.io.BufferedWriter包。导入包后,我们可以这样创建buffered writer。

// Creates a FileWriter
FileWriter file = new FileWriter(String name);

// Creates a BufferedWriter
BufferedWriter buffer = new BufferedWriter(file);

在上面的示例中,我们使用名为fileFileWriter创建了一个名为bufferBufferedWriter

在这里,BufferedWriter的内部缓冲区具有默认大小8192个字符。但是,我们也可以指定内部缓冲区的大小。

// Creates a BufferedWriter with specified size internal buffer
BufferedWriter buffer = new BufferedWriter(file, int size);

该缓冲区将有助于更有效地将字符写入文件。


BufferedWriter的方法

BufferedWriter类为Writer中存在的方法提供了实现。

write() 方法

  • write() - 将单个字符写入writer的内部缓冲区
  • 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 {
      // Creates a FileWriter
      FileWriter file = new FileWriter("output.txt");

      // Creates a BufferedWriter
      BufferedWriter output = new BufferedWriter(file);

      // Writes the string to the file
      output.write(data);

      // Closes the writer
      output.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们创建了一个名为output的buffered writer,并附带了一个FileWriter。buffered writer与**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()方法。此方法强制writer将缓冲区中的所有数据写入目标文件。

例如,假设我们有一个名为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 {
      // Creates a FileWriter
      FileWriter file = new FileWriter(" flush.txt");

      // Creates a BufferedWriter
      BufferedWriter output = new BufferedWriter(file);

      // Writes data to the file
      output.write(data);

      // Flushes data to the destination
      output.flush();
      System.out.println("Data is flushed to the file.");

      output.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

输出

Data is flushed to the file.

当我们运行程序时,文件output.txt将被字符串data表示的文本填满。


close() 方法

要关闭buffered writer,我们可以使用close()方法。调用close()方法后,我们就不能再使用该writer写入数据了。


BufferedWriter的其他方法

方法 描述
newLine() 向writer插入一个新行
append() 将指定的字符插入当前写入器

要了解更多信息,请访问Java BufferedWriter (官方Java文档)

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战