[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