A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在IO流中,close()和flush()有什么区别呢????最好能举例,谢谢大家

3 个回复

倒序浏览
flush() 刷新缓冲区,close()先先刷新缓冲区再关闭流,flush后可以调用流的方法如 :read,write,close后就不能调用这些方法了
回复 使用道具 举报
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. }
复制代码
回复 使用道具 举报
学习了。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马