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

  1. FileWriter fw=null;
  2.                 try{
  3.                                
  4.                 fw=new FileWriter("aaa.txt");
  5.                 fw.write("aaaa");
  6.                 //fw.flush();            //注销后照样能写入,这是因为后面close会自动执行这句吗?
  7.         }
  8.                 catch(IOException e)
  9.                 {
  10.                         System.out.println("第一个catch:"+e.toString());
  11.                 }
  12.                 finally{
  13.                        
  14.                         try{
  15.                                 if(fw!=null)
  16.                 fw.close();
  17.                         }
  18.                         catch(IOException e)
  19.                         {
  20.                                 System.out.println("第二个catch:"+e.toString());
  21.                         }
  22.                 }
复制代码


5 个回复

倒序浏览
对,视频有说过这个,但这不安全,所以你还是写吧
回复 使用道具 举报
必须啊,这个是不安全的,因为close也可能出现异常,如果出现异常,那么这个close就不能执行了,那整个程序就要报错了。
回复 使用道具 举报
额。。。视频里面有讲chose跟flush的区别,flush是输出到缓冲区,缓冲区没满的话不发送,close的动作会强制把缓冲区里没发送的东西发送出去,调用close的时候其实自动先调用了flush
回复 使用道具 举报
学习学习
回复 使用道具 举报
先flush后close。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马