黑马程序员技术交流社区

标题: 在IO流中,close()和flush()有什么区别呢???? [打印本页]

作者: liufeibo    时间: 2015-9-22 11:26
标题: 在IO流中,close()和flush()有什么区别呢????
在IO流中,close()和flush()有什么区别呢????最好能举例,谢谢大家
作者: 芝麻糊    时间: 2015-9-22 11:41
flush() 刷新缓冲区,close()先先刷新缓冲区再关闭流,flush后可以调用流的方法如 :read,write,close后就不能调用这些方法了
作者: chenguoyu520    时间: 2015-9-22 13:22
flush刷新后流可以继续使用,close刷新后,会将流关闭。flush刷新后,还可以用流对象调用其中的方法,write,read,而close刷新后,再不能调用流中方法。
  1. import java.io.FileWriter;
  2. import java.io.IOException;

  3. public class FileWriterDemo {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 FileWriter fw = null;//创建一个FileWriter对象,该对象一被初始化
  9.                 try {
  10.                         fw = new FileWriter("demo.txt");
  11.                         fw.write("abcdef");//调用write方法,将字符串写入到流中
  12.                         fw.flush();//刷新流对象的缓冲区
  13.                         fw.write("haha");//刷新后还可以向流中写入数据
  14.                 } catch (IOException e) {
  15.                         e.printStackTrace();
  16.                 }finally{
  17.                         if(fw!=null){
  18.                                 try {
  19.                                         fw.close();//关闭流资源
  20.                                         //fw.write("hello");//再调用write方法向流写数据,将会报错,流已经被关闭。
  21.                                 } catch (IOException e) {
  22.                                         e.printStackTrace();
  23.                                 }
  24.                         }
  25.                 }
  26.         }

  27. }
复制代码

作者: ln0491    时间: 2015-9-22 14:11
学习了。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2