【问题标题】:Android - iterating through ZipentryAndroid - 迭代 Zipentry
【发布时间】:2012-04-25 18:29:26
【问题描述】:

我在一个 ZIP 文件中有大量文件(比如说 1000 个图像、一些 db 文件、二进制文件……)。在其中,我有一些需要查找和解析的 xml 文件。来自它的信息显示在屏幕上。问题是,当我使用以下方式遍历 zip 条目时:

   InputStream inputStream = new FileInputStream(zipPath);
   in = new ZipInputStream(inputStream);

   for (ZipEntry entry = in.getNextEntry(); entry != null; entry = in.getNextEntry()) {
     ...some code here...
   }

所以当我使用 Log.d 时,我看到它正在逐个文件地迭代,如果文件量很大,可能需要几分钟。有没有更好的方法,如何在 ZIP 文件中找到一个特定文件?我现在使用的“蛮力”方法很耗时。

感谢您的任何想法

航点

【问题讨论】:

    标签: android zip zipfile


    【解决方案1】:

    您可能可以这样做:

    BufferedReader in = new BufferedReader(new InputStreamReader(zipfile.getInputStream(entry)));
    

    【讨论】:

      【解决方案2】:

      提取特定文件时,您应该使用ZipFile。特别是ZipFile.getEntry()

      这应该没问题,因为您使用的是文件。但是,如果您只有一个 InputStream(或者出于某种原因您更喜欢使用 ZipInputStream),那么,如果您控制 zip 文件的构建方式,您应该将 XML 文件作为第一个条目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 2012-10-08
        • 2016-08-21
        • 1970-01-01
        • 2016-04-23
        • 2016-10-09
        相关资源
        最近更新 更多