黑马程序员技术交流社区

标题: 夜深,继续撸代码,发现流不flush刷新也能写入。 [打印本页]

作者: 突然世界晴    时间: 2015-3-13 23:43
标题: 夜深,继续撸代码,发现流不flush刷新也能写入。
  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.                 }
复制代码



作者: Zoe-    时间: 2015-3-14 00:22
对,视频有说过这个,但这不安全,所以你还是写吧
作者: 123412    时间: 2015-3-14 07:51
必须啊,这个是不安全的,因为close也可能出现异常,如果出现异常,那么这个close就不能执行了,那整个程序就要报错了。
作者: DxxD    时间: 2015-3-14 08:25
额。。。视频里面有讲chose跟flush的区别,flush是输出到缓冲区,缓冲区没满的话不发送,close的动作会强制把缓冲区里没发送的东西发送出去,调用close的时候其实自动先调用了flush
作者: 黑马小夏    时间: 2015-3-14 08:31
学习学习
作者: 罗晓飞    时间: 2015-3-14 08:34
先flush后close。。。。。。




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