在ZipInputStream中跳过多个字节

时间:2014-05-10 20:32:57

标签: java

所以在ZIP文件的末尾,就像最后一个64K一样,有一个中央目录,你可以从中找到它自己包含的ZIP文件。

现在我已将ZIP文件加载到ZipInputStream中,在此之前我已经声明了一个长文件,即ZIP文件的长度 - 64k。

所以我想跳过尽可能多的字节和长变量状态,然后才开始读取信息。但我真的不明白.skip()方法如何适用于ZipInputStream。

使用后,.getNextEntry()方法仍会从头开始,.read(byte[64 * 1024])会告诉我它不应该是流的结尾?

那么这个skip()方法实际上是做什么的,以及如何获取我的中央目录?

1 个答案:

答案 0 :(得分:2)

据我所知,你在这里混合了两件事。

将您的数据读作普通InputStream,转到您想要的位置,然后自己开始阅读和解析普通数据。

或者使用ZipInputStream API并遍历ZipEntriesZipInputStream是原始流之上的抽象,它处理读取中心目录并透明地解压缩压缩字节。因此,您无法使用ZipInputStream

访问原始目录

有关详细信息,请参阅