[java bug记录] java.util.zip.ZipException: invalid code lengths set


1. 描述:将代码迁移到maven工程,其中用ZipInputStream读取/src/main/resources下的zip文件时报错:“java.util.zip.ZipException: invalid code lengths set”

代码如下:

ZipInputStream zis = new ZipInputStream(getClass().getResourceAsStream(objectDicFilePath));

zis.getNextEntry();

ObjectInputStream ois = new ObjectInputStream(zis);

2. 原因:maven从resources中读取资源时默认会进行过滤,其中包含了重新编码,因此如果资源文件与maven的编码环境不同时,会导致文件损坏。

3. 解决:

(方案1)在pom.xml中设置filtering为true时则过滤

<filtering>true</filtering>

因此将其置false。

(方案2)或者,将

<encoding>ISO-8859-1</encoding>

改为资源文件的编码格式。

(方案3)把资源文件zip解压后放入resources,我最后这么做的。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM