日期:2014-05-20  浏览次数:20617 次

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

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


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


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

顶...