当前位置: 代码迷 >> J2SE >> 流的close()为什么表面上看感觉可有可无?请讲解以下这个函数的作用以及没有他会有什么后果?解决方法
  详细解决方案

流的close()为什么表面上看感觉可有可无?请讲解以下这个函数的作用以及没有他会有什么后果?解决方法

热度:41   发布时间:2016-04-24 13:14:28.0
流的close()为什么表面上看感觉可有可无?请讲解以下这个函数的作用以及没有他会有什么后果?
流的close()为什么表面上看感觉可有可无?请讲解以下这个函数的作用以及没有他会有什么后果?

------解决方案--------------------
流是资源,要区分资源和内存,内存JVM帮你释放,但是资源还是要手工释放的.
什么是资源,比如文件,Socket,管道,等等.释放是个逻辑问题,你不需要它就应该显式的释放它.不能等着JVM去gc到它.那个时候,黄花菜都凉了...


------解决方案--------------------
虽然说垃圾收集器会将其收集的,但是不close()的话,
在写入多的数据时会产生些问题,有可能有些数据并没
有完全写入到流中去。
------解决方案--------------------
如果是BufferedOutputStream,你不Close的话就可能造成最后缓存中的数据丢失了!


所以Close是必须的,而绝非可有可无。
------解决方案--------------------

顶...
  相关解决方案