类
java.util.zip.ZipEntry
有一个方法 getSize
,如果未压缩的大小未知,则返回 -1。
我知道如果我有
ZipInputStream
,就会发生这种情况。如果我有 ZipFile
,也会发生这种情况吗?
我有读取
.zip
文件的代码,需要知道 zip 条目的未压缩大小,我之所以这么问,是因为我需要知道是否需要处理 getSize
返回 -1 的情况。
如果
getSize
有可能返回 -1,那么我想知道应该如何构建这样的 .zip
文件,以便我可以编写一个测试来确认我是否正确处理它。
请参阅规范:https://pkwaredownloads.blob.core.windows.net/pem/APPNOTE.txt
具体来说,第 4.4.4 节“通用位标志”。位 3 意味着本地文件头中的大小字段如果未知,则可以设置为 0,然后实际大小将位于中央目录中(在文件末尾)。