Java 中 BufferedWriter 类的 flush() 和 close() 方法有什么用?


Java 的 BufferedWriter 类用于将字符流写入指定的目标(字符输出流)。它最初将所有字符存储在缓冲区中,并将缓冲区的内容推送到目标,从而使字符、数组和字符串的写入更高效。

您可以在实例化此类时指定所需的缓冲区大小。

flush() 方法

当您尝试使用 BufferedWriter 对象将数据写入流时,在调用 write() 方法后,数据将首先被缓冲,不会打印任何内容。

**flush()** 方法用于将缓冲区的内容推送到底层流。

示例

在下面的 Java 程序中,我们尝试在控制台(标准输出流)上打印一行。在这里,我们通过传递所需的字符串来调用 write() 方法。

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
   public static void main(String args[]) throws IOException {
      //Instantiating the OutputStreamWriter class
      OutputStreamWriter out = new OutputStreamWriter(System.out);
      //Instantiating the BufferedWriter
      BufferedWriter writer = new BufferedWriter(out);
      //Writing data to the console
      writer.write("Hello welcome to Tutorialspoint");
   }
}

但是,由于您没有刷新 BufferedWriter 的缓冲区内容,因此不会打印任何内容。

要解决此问题,请在执行 write() 后调用 **flush()** 方法。

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
   public static void main(String args[]) throws IOException {
      //Instantiating the OutputStreamWriter class
      OutputStreamWriter out = new OutputStreamWriter(System.out);
      //Instantiating the BufferedWriter
      BufferedWriter writer = new BufferedWriter(out);
      //Writing data to the console
      writer.write("Hello welcome to Tutorialspoint");
      writer.flush();
   }
}

输出

Hello welcome to Tutorialspoint

更新于: 2019年8月1日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告