2014-05-10 16 views
0

因此,在最後一個ZIP文件的末尾,有一箇中央目錄,您可以從中查看它自己包含的ZIP文件。跳過ZipInputStream中的字節數

現在我已經將我的ZIP文件加載到ZipInputStream中,在此之前我已經聲明瞭一個長變量,即ZIP文件的長度 - 64k。

所以我想跳過儘可能多的字節和長變量狀態,並且只在這之後開始讀取信息。但我真的不明白如何.skip()方法適用於ZipInputStream。

使用它後,.getNextEntry()方法仍然會從頭開始,.read(byte[64 * 1024])會告訴我,它不應該是流的結束?

那麼這個skip()方法實際上在做什麼以及如何獲取我的中央目錄?

回答

2

就我所見,你在這裏混合了兩件事。

要麼讀取您的數據作爲純InputStream,轉到您想要的位置,並開始閱讀和解析純數據自己。

或使用ZipInputStream API並遍歷ZipEntriesZipInputStream是處理讀取中央目錄並透明地解壓縮壓縮字節的原始流的抽象。因此,您無法使用ZipInputStream訪問原始目錄。

欲瞭解更多信息,也

+0

ZipInputStream已跳過實施看,但getNextEntry不會從你那裏跳過讀取。 – alwynd