直接关闭流,close();关闭流,但会先刷新
因为流对象最终使用的是本地系统中的资源完成的动作。
所以使用完了系统资源后,一定会释放。所以close的动作一定要有。
BufferedWriter先刷新缓冲区中的数据到目的地,然后关闭缓冲区中的流资源。
两者不同的是一个有缓冲区,一个没有缓冲区,最后的动作都是一样的把流关闭了。
如果你使用了缓冲区,直接关闭缓冲区就可以了,就不用再关闭了。
//创建字符输出流对象,并创建存储数据的目的地。
// FileWriter fw = new FileWriter("c:"+ToolSeparator.FILE_SEPARATOR+"buf.txt");
FileWriter fw = new FileWriter("buf.txt");
//为了提高写入效率,定义了字符输出流缓冲区,并和指定的字符输出流对象关联。
BufferedWriter bufw = new BufferedWriter(fw);
// 使用fw的方法可以。既然有了缓冲区对fw进行效率的提高。
// 可以使用缓冲区的高效方法,来操作数据。其实底层使用还是fw的方法。只不过对其高效了。
//bufw.write("hahahas");//数据被写入到了缓冲区中。相当于水已经到了杯子中.
//bufw.write(ToolSeparator.LINE_SEPARATOR+"hehiehie");
//bufw.newLine();//获取系统自带的换行符进行换行。
//bufw.write("xxixiixi");
//bufw.flush();//刷新缓冲区。记住:只要用到缓冲区,记得一定要刷新。
for(int x=0;x<4;x++){
bufw.write(x+"hahahaha");
bufw.newLine();
bufw.flush();
}
bufw.close();//先刷新缓冲区中的数据到目的地,然后关闭缓冲区中的流资源。
//fw.close(); //所以fw就不用关闭了。 |