当您尝试使用BufferedWriter对象将数据写入Stream时,在调用write()方法之后,数据将首先被缓冲,但不会打印任何内容。
flush()方法用于将缓冲区的内容推到基础流。
在以下Java程序中,我们尝试在控制台上打印一行(标准输出流)。在这里,我们通过传递所需的String来调用write()方法。
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
public static void main(String args[]) throws IOException {
//实例化OutputStreamWriter类
OutputStreamWriter out = new OutputStreamWriter(System.out);
//实例化BufferedWriter-
BufferedWriter writer = new BufferedWriter(out);
//将数据写入控制台
writer.write("Hello welcome to Nhooo");
}
}但是,由于尚未刷新BufferedWriter的Buffer的内容,因此不会打印任何内容。
要解决此问题,请在执行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 {
//实例化OutputStreamWriter类
OutputStreamWriter out = new OutputStreamWriter(System.out);
//实例化BufferedWriter-
BufferedWriter writer = new BufferedWriter(out);
//将数据写入控制台
writer.write("Hello welcome to Nhooo");
writer.flush();
}
}输出结果
Hello welcome to Nhooo