1

我在 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 文件中找到一个特定文件?我现在使用的“蛮力”方法非常耗时。

感谢您的任何想法

航点

4

2 回答 2

0

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

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

于 2014-04-05T06:53:04.890 回答
0

您可能可以这样做:

BufferedReader in = new BufferedReader(new InputStreamReader(zipfile.getInputStream(entry)));
于 2012-06-11T20:24:28.243 回答