2012-09-04 45 views
1

我们使用ZipOutputStream(在32位jdk上)从多个文件创建单个Zip文件。大型Zip文件在32位JDK上损坏

如果我们使用5个pdf文件(每个pdf为1 GB)创建Zip文件比创建损坏的Zip文件。如果我使用(4个pdf文件 - 每个pdf为1 GB)创建Zip文件,则会创建正确的Zip文件。

32位JDK上的Zip文件大小是否有限制?

+0

您将不得不使用Java 7(请参阅我的答案) – Resh32

回答

2

原始ZIP格式有4GB的限制(文件的未压缩大小,文件的压缩大小和归档的总大小)。

更多信息:http://en.wikipedia.org/wiki/ZIP_(file_format

原来的ZIP格式对各种事物的4吉布限制(文件的未压缩的大小,文件和档案的总规模压缩后的大小),以及限制65535条目在一个zip档案。在规范的版本4.5中(与任何特定工具的v4.5不同),PKWARE引入了“ZIP64”格式的扩展来解决这些限制,将限制增加到16个EiB(264字节)。 Windows XP中的文件资源管理器不支持ZIP64,但Windows Vista中的资源管理器不支持。同样,一些库,如DotNetZip和Perl中的IO :: Compress :: Zip,支持ZIP64。 Java内置的java.util.zip支持Java 7以上版本的ZIP64。[29]