你这个问题有两种情况:
1.import java.io.*;
class FileWriterDemo
{
public static void main(String[] args)throws IOException
{
//新建对象,要有明确的对象
FileWriter fw=new FileWriter("demo.txt");
//调用write方法,将字符串写入到流中。
fw.write("abc");//内容不会被打印
//刷新流对象中的缓冲数据。
//fw.flush();
//关闭流资源。在关闭流资源的时候,也会刷新缓冲数据。
fw.close();
}
}
在这个例子中就说明了,fw.flush()是刷新数据的,但是close()也有这项功能同时还有关闭流资源的功能,所以在这里可以省略flush().
close()和flesh()的区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
2.import java.io.*;
class BufferedWriterDemo
{
public static void main(String[] args)throws IOException//记得对异常的处理
{
//创建流对象
FileWriter fw=new FileWriter("demo.txt");
//把fw作为实际参数传递给缓冲取BufferdeWriter
BufferedWriter bfw=new BufferedWriter(fw);
//bfw.write("abcdefg");
//记住刷新缓冲区
//bfw.flush();
//关闭bfw中的流就是关闭fw中的流
//bfw.close();
for (int x=1;x<5;x++)
{
bfw.write("abc"+x);
bfw.newLine();
bfw.flush();
}
bfw.close();
}
}
从这个例子可以看出,只要是用到了缓冲区就一定要刷新流,所以在这个例子中fulsh就必须有,要不然就没有数据。
综合上面的两个例子,说明了,其实flush就是刷新流的,close就是关闭流资源的,所以close这个动作必须要有,但是flush就是分两种情况,如上。 |