Я использую Java 1.7.0_40 в Red Hat Linux, и у меня есть следующий код:
Path zipfile = Paths.get(filename);
FileSystem fs = FileSystems.newFileSystem(zipfile, FileTest.class.getClassLoader());
Переменная filename
указывает на zip файл, размер которого составляет 788 МБ. Несжатый размер zip файла составляет 8,3 ГБ. Когда я запускаю код выше, я получаю следующее исключение:
Exception in thread "main" java.util.zip.ZipError: invalid CEN header (bad signature)
at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1605)
at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1058)
at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:386)
at FileTest.readFromZip(FileTest.java:35)
at FileTest.main(FileTest.java:25)
У меня создалось впечатление, что Java 7 способен обрабатывать большие zip файлы. Может ли кто-нибудь объяснить, почему это происходит?
Спасибо.