解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry:問(wèn)題
Java壓縮zip異常java.util.zip.ZipException:duplicate entry
在測(cè)試過(guò)程中看到后臺(tái)打印的日志出現(xiàn)異常
發(fā)現(xiàn)這也是歷史遺留問(wèn)題:
java.util.zip.ZipException: duplicate entry: 111111.txt
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:215)
出現(xiàn)這種錯(cuò)誤的原因是:打包的過(guò)程中,出現(xiàn)相同的文件名稱
關(guān)鍵代碼
public static void doCompress(File file, ZipOutputStream out) throws IOException {
if( file.exists() ){
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(file);
out.putNextEntry(new ZipEntry(file.getName()));
int len = 0 ;
// 讀取文件的內(nèi)容,打包到zip文件
while ((len = fis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.flush();
out.closeEntry();
fis.close();
}
}注意這里
out.putNextEntry(new ZipEntry(file.getName()));
參數(shù)file.getName()存在相同的文件名稱時(shí),就會(huì)出現(xiàn)開(kāi)頭處的異常信息。
解決方法
針對(duì)文件名做唯一處理,后面見(jiàn)加上時(shí)間戳信息,也可以加上別的數(shù)據(jù),避免文件名一致
也就是在方法doCompress的參數(shù)file中,name應(yīng)該做唯一處理
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于maven工程多模塊、項(xiàng)目打包問(wèn)題
這篇文章主要介紹了關(guān)于maven工程多模塊、項(xiàng)目打包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
IDEA新建JAVA項(xiàng)目簡(jiǎn)單圖文教程
這篇文章主要給大家介紹了關(guān)于IDEA新建JAVA項(xiàng)目的相關(guān)資料,IDEA是現(xiàn)在java中最為常用的編譯器,所以如何使用IDEA來(lái)創(chuàng)建java項(xiàng)目呢,這里給大家總結(jié)下,需要的朋友可以參考下2023-08-08
java后臺(tái)發(fā)起get請(qǐng)求獲取響應(yīng)數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java后臺(tái)發(fā)起get請(qǐng)求獲取響應(yīng)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Springboot @Value注入boolean設(shè)置默認(rèn)值方式
這篇文章主要介紹了Springboot @Value注入boolean設(shè)置默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

