Очень большой zip-файл (> 50 ГБ)--> ZipException:недопустимый заголовок CEN

Я пытаюсь открыть ZIP-файл в JAVA.

Приведенный ниже код работает нормально, за исключением некоторых больших файлов, и в этом случае я получаю следующее исключение:

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 для распаковки файла, а gzip под Linux выдает ошибку о том, что длина данных-несжатого файла (составляет около 80 ГБ). Мне пришлось использовать следующий обходной путь, чтобы распаковать его:

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;
    }
}
8
задан julia 10 April 2012 в 20:52
поделиться