Java 中 BufferedWriter 类的 flush() 和 close() 方法有什么用?
java 8object oriented programmingprogramming更新于 2025/9/19 19:56:17
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 {
//实例化 OutputStreamWriter 类
OutputStreamWriter out = new OutputStreamWriter(System.out);
//实例化 BufferedWriter
BufferedWriter writer = new BufferedWriter(out);
//将数据写入控制台
writer.write("Hello, Welcome to Tutorialspoint");
}
}
但是,由于您尚未刷新 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 Tutorialspoint");
writer.flush();
}
}
输出
Hello welcome to Tutorialspoint

