我正在编写一个处理Zip文件内容的应用。我有一些不同的解压缩方法,具体取决于内容的存储位置。 当解压缩SD卡时,我正在使用ZipFile,这很有效,因为我总是试图从zip中获取特定文件。 当我使用存储在Assets中的zip进行dealling时,我正在尝试从资产中获取InputStream,然后遍历流以查找我正在寻找的特定文件。 e.g:
ZipInputStream zipInputStream = new ZipInputStream(bufferedInputStream); // Editted following comment from Jave
ZipEntry entry;
ZipEntry targetEntry = null;
try {
while (targetEntry == null
&& (entry = zipInputStream.getNextEntry()) != null)
{
if (entry.getName().endsWith(fileName))
{
targetEntry = entry;
}
}
我发现这次迭代花费了太多时间。有谁知道解压缩资产的更快方法? (例如,是否有另一种方法来获取资产,而不是将其作为流?) 我真的没有想到任何事情(除了可能在我开始之前将拉链复制到SD)。
答案 0 :(得分:0)
ZipInputStream inZip = new ZipInputStream(MainActivity.this.getAssets().open(_zipFile));
像这样,您可以从资产中按名称获取zipFile。