我有一个大的存档(在我的情况邮编)与大小吧〜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