有沒有辦法打開zip文件並訪問它,因爲它在Android中解壓縮?我有數據的zip文件,我需要通過應用程序訪問,我不想將它解壓到某個文件夾並從那裏打開。所以我希望直接從zip文件訪問數據,而不用解壓縮它。我現在試圖使用ZipFile,但我還沒有找到任何用法,這可能對我有用。這種方法甚至可能嗎?Android Zip文件訪問
感謝
有沒有辦法打開zip文件並訪問它,因爲它在Android中解壓縮?我有數據的zip文件,我需要通過應用程序訪問,我不想將它解壓到某個文件夾並從那裏打開。所以我希望直接從zip文件訪問數據,而不用解壓縮它。我現在試圖使用ZipFile,但我還沒有找到任何用法,這可能對我有用。這種方法甚至可能嗎?Android Zip文件訪問
感謝
好,因爲每個文件,以使用其內容,您必須打開,並在爲此,您使用的InputStream讀它在內存中,通常。在這種情況下,您必須閱讀zip文件的條目,以便您可以遍歷zip條目,並且當您找到要查找的條目時,可以獲取ZipInputStream並像正常文件一樣讀取
這是我一直使用的代碼'即時解壓縮'並創建drawable。
private void createBitmapDrawables() throws IOException {
// TODO Auto-generated method stub
InputStream is = getResources().getAssets().open("images.zip");
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));
try {
ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
while ((count = zis.read(buffer)) != -1) {
baos.write(buffer, 0, count);
}
String file = ze.getName();
byte[] bytes = baos.toByteArray();
drawable = createBitmapDrawable(bytes, file);
}
} finally {
zis.close();
}
}
從Android Dev網站上獲得很多。 希望它有幫助。
謝謝,我已經拿出來ZipInputStream,但我只succeded,當我救ZipInputStream到一個文件中。我不能將它保存爲文件,而是在旅途中處理它?如何製作「虛擬」文件,該文件將被採用並且不保存在內存中? – Waypoint 2012-03-04 17:38:44
以及依賴於數據消費者。例如,您的應用程序可以直接從InputStream或字節數組讀取數據..這取決於您 – Blackbelt 2012-03-04 18:36:28