使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案
问题描述:
如下图所示,在解压Java程序生成的ZIP压缩包时出现不可预料的压缩文件末端,
问题分袖:
出现上面的情况,大概有两种情况,第一种是输出流没有关闭,第二种是输出流关闭顺序不正确。在写程序时一定要注意使用流完毕后一定要关闭,要不然输出的文件可能是不完整或者损坏的,再者如果关闭输出流的顺序不正确的话也会造成文件损坏或不完整。
解决方案:
检查程序输出流是否关闭或者是否关闭顺序正确
进入视线压缩的代码:
从上面代码可以看出应该先打开的流后关闭,后打开的流先关闭,继续看下去,
从代码中看出是关闭可输出流,但是关闭的顺序写错了,应该先关闭ZipOutputStream,后关闭OutputStream,
修改过后重新运行,问题解决
总结:巩固基础很重要。