解压缩资产的更快方法

时间:2012-03-26 12:09:53

标签: android zip

我正在编写一个处理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)。

1 个答案:

答案 0 :(得分:0)

ZipInputStream inZip = new ZipInputStream(MainActivity.this.getAssets().open(_zipFile));

像这样,您可以从资产中按名称获取zipFile。