我在ZIP文件中有大量文件(比如1000个图像,一些数据库文件,二进制文件......)。在其中,我有一些我需要找到并解析它的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文件中找到一个特定的文件?我现在使用的“蛮力”方法非常耗时。
感谢您的任何想法
航点
答案 0 :(得分:0)
您可以这样做:
BufferedReader in = new BufferedReader(new InputStreamReader(zipfile.getInputStream(entry)));
答案 1 :(得分:0)
提取特定文件时,您应该使用ZipFile
。特别是ZipFile.getEntry()。
因为您使用的是文件,所以这应该没问题。但是,如果您只有一个InputStream(或者您更喜欢因某些原因使用ZipInputStream),那么,如果您控制zip文件的构建方式,则应将XML文件作为第一个条目。