我有一個大的存檔(在我的情況郵編)與大小吧〜100MB,並用〜15000的文件。我需要快速從該壓縮文件中提取一個文件。解壓縮從歸檔單個文件的Android
我試了下代碼:
final String zipPath = "archive.zip";
FileInputStream fin = new FileInputStream(zipPath);
in = new ZipInputStream(fin);
for (ZipEntry entry = in.getNextEntry(); entry != null; entry = in.getNextEntry()) {
if(entry.equals("file.name")){
//unzip this entry
break;
}
}
它的工作原理,但速度太慢。
是它的一些另一種可能性找到存檔需要的文件?例如,在Linux上,它極其快速地使用命令
unzip archive.zip myfile.name
通常,我需要從某個存檔中找到並解壓縮一個文件。它可以是另一種格式...可以用另一種格式,它可以更容易。
你能以這樣或那樣的文件名進行排序? – 2012-08-04 11:28:07
嗨!我想不是。我有一個普通的zip壓縮文件。我發現按照字母順序閱讀檔案中的條目,但是如果我的文件名稱爲「zzz.file」,那麼在檔案中找到這個文件有很多時間。 – lubart 2012-08-04 13:11:58
如果他們按字母順序排序,你可以做一個二進制搜索(O(日誌(最壞情況複雜N))。 – 2012-08-04 18:21:13