Java 跳过ZipInputStream中的若干字节

Java 跳过ZipInputStream中的若干字节,java,Java,因此,在ZIP文件的末尾,就像最后的64K一样,有一个中心目录,您可以从中看到它自己包含的ZIP文件 现在,我已经将ZIP文件加载到ZipInputStream中,在此之前,我声明了一个长变量,即ZIP文件的长度——64k 所以我想跳过尽可能多的字节和长的变量状态,然后才开始读取信息。但是我真的不明白.skip()方法是如何用于ZipInputStream的 使用它之后,.getnextry()方法仍将从头开始,.read(字节[64*1024])将告诉我它是流的结尾,而不应该是流的结尾 那么这

因此,在ZIP文件的末尾,就像最后的64K一样,有一个中心目录,您可以从中看到它自己包含的ZIP文件

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

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

使用它之后,
.getnextry()
方法仍将从头开始,
.read(字节[64*1024])
将告诉我它是流的结尾,而不应该是流的结尾


那么这个skip()方法到底在做什么,我如何才能得到我的中心目录呢?

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

以普通
InputStream
格式读取数据,然后转到所需位置,自己开始读取和解析普通数据

或者使用
ZipInputStream
API并迭代
ZipEntries
ZipInputStream
是原始流之上的一个抽象,它处理读取中心目录和透明地解压缩压缩的字节。因此,您无法使用
ZipInputStream
访问原始目录

有关更多信息,请参见


ZipInputStream已实现skip,但getNextEntry不会从您跳过的位置读取。