因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中。
但是关闭的流对象,是无法继续写出数据 的。如果我们既想写出数据,又想继续使用流,就需要 flush 方法了。
flush :刷新缓冲区,流对象可以继续使用。
close :先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
public class FWWrite {
public static void main(String[] args) throws IOException {
// 使用文件名称创建流对象
FileWriter fw = new FileWriter("fw.txt");
// 写出数据,通过flush
fw.write('刷');
// 写出第1个字符
fw.flush();
fw.write('新');
// 继续写出第2个字符,写出成功
fw.flush();
// 写出数据,通过close
fw.write('关');
// 写出第1个字符
fw.close();
fw.write('闭');
// 继续写出第2个字符,【报错】
java.io.IOException: Stream closed
fw.close();
}