[英]Java 8 zipfile > 4 GB . ZipException: invalid CEN header (bad signature)
[英]Very large zip file (> 50GB) --> ZipException: invalid CEN header
我正在嘗試在 JAVA 中打開一個 ZIP 文件。
下面的代碼工作正常,除了一些大文件,在這種情況下我得到以下異常:
Exception in thread "main" java.util.zip.ZipException: invalid CEN header (bad signature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:75)
有已知的錯誤嗎? 會不會是因為 JAVA 不支持更高的壓縮級別?
請注意,我無法使用 Winzip 解壓縮文件,並且 Linux 下的 gzip 給出了有關數據長度的錯誤(解壓縮文件約為 80 GB)。 我不得不使用以下解決方法來解壓縮它:
gunzip -S .zip < file.zip > file
任何想法都會非常有幫助。
代碼:
if (file.getExtension().equals("gz")) {
br = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(name))));
}
else if (file.getExtension().equals("zip")) {
ZipFile zipFile = new ZipFile(name); // <-------------------FAILS HERE
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry zipEntry = entries.nextElement();
System.out.println("ZIP File in the archive:" + zipEntry.getName());
br = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry)));
break;
}
}
如果您沒有使用 Java 7(支持 ZIP64),問題可能是java 正在嘗試使用舊的 ZIP 格式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.