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


当您尝试使用 BufferedWriter 对象向 Stream 写入数据时,在调用 write() 方法后,数据将最初缓冲起来,不会打印任何内容。

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

示例

在下面的 Java 程序中,我们尝试在控制台(标准输出流)上打印一行。此处,我们调用 write() 方法,并传入所需的 String。

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

更新于: 15-Oct-2019

322 次浏览

开始您的职业

完成课程后获得认证

开始学习
广告