首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

ZipOutputStream close 与 finish的区别是什么?finish的使用场景是什么?该如何处理

2012-01-12 
ZipOutputStream close 与 finish的区别是什么?finish的使用场景是什么?下面是jdk中的描述:closepublic vo

ZipOutputStream close 与 finish的区别是什么?finish的使用场景是什么?
下面是jdk中的描述:

close
public void close()
  throws IOException关闭 ZIP 输出流和正在过滤的流。

finish
public void finish()
  throws IOException完成写入 ZIP 输出流的内容,无需关闭基础流。对同一输出流连续应用多个过滤器时使用此方法。 


今天在用findbug检视项目代码时候,报Method may fail to close stream ,从提示信息看是有流没有关闭,
跟到代码中看了下,发现是ZipOutputStream 并没有使用close()关闭流,而是使用的finish(). 
到网上搜了下没有找到finish()的太多资料,各位看官对finish()的使用场景有何见解,小弟请教了。

[解决办法]
我的理解:close是关闭了基础流和ZIP流,而finish是关闭了ZIP流,当一个基础流被多个ZIP流使用时,你的基础流被close关闭了,于是就用不了了

热点排行
Bad Request.