我有一個的ZipFile和我想創建與在它的每個條目的偏移量/大小的陣列。這樣一來,C++層(JNI)就可以直接讀取這些子文件而不必提取它們。如何在Java中找到ZipFile條目的文件偏移量?
我可以使用entry.getCompressedSize()文件的壓縮後的大小,但我看不到任何東西,找出該zip中的文件的偏移量。
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
while (zipEntries.hasMoreElements())
{
ZipEntry zip = (ZipEntry)zipEntries.nextElement();
//long offset = ?
long fileSize = zip.getCompressedSize();
}
任何簡單的方法來得到這個?
了什麼問題是你真的想解決?總的來說,這聽起來像一個奇怪的技術方法...否則我不知道如何做到這一點。 –
我有一個使用Android NDK R4建立了一個項目,該項目並沒有允許本地代碼,以項目資產的直接訪問。我通過將偏移量/文件大小傳遞給本機代碼並覆蓋文件操作來解決此問題,以便使用文件中的開始/結束位置直接從資產文件加載值。由於我無法進入(nda)的原因,我現在需要閱讀額外的.zip文件,並且我沒有AssetFileDescriptor來獲取此信息。 –
如果你不能找到一個解決方案,你仍然可以使用Java解壓和服務從臨時或(如果你敢不存儲數據的任何地方)內存中的文件內容。 –