我在寻找最有效的方式(在速度方面)来检索某些文件出一个ZIP文件的中间。
例如我有ZIP文件,其中包括700个文件夹(标记1〜700)。 每个文件夹都等于图片和MP3文件。 有一个叫信息特殊的文件夹,其中包含XML文件。 问题是,我需要通过这个ZIP文件遍历查找XML文件,然后我从所需的文件夹显示图像。 我使用的ZipFile方法(因此我通过整个ZIP文件迭代,即使我想夹666,我需要去通过ZIP文件665项) - >从ZIP文件选择是极其缓慢。
我想问问你,如果你曾经面临类似的问题,你怎么样解决呢? 有没有在Java中的任何办法,这令我ZIP文件到虚拟文件夹浏览它更快捷? 是否有任何外部库,这是最有效的在时间上?
源代码片段:
try {
FileInputStream fin = new FileInputStream(
"sdcard/external_sd/mtp_data/poi_data/data.zip");
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
// Log.d("ZE", ze.getName());
if (ze.getName().startsWith("body/665/")) {
// Log.d("FILE F", "soubor: "+ze.getName());
if (ze.getName().endsWith(".jpg")
|| ze.getName().endsWith(".JPG")) {
Log.d("OBR", "picture: " + ze.getName());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
while ((count = zin.read(buffer)) != -1) {
baos.write(buffer, 0, count);
}
byte[] bytes = baos.toByteArray();
bmp = BitmapFactory.decodeByteArray(bytes, 0,
bytes.length);
photoField.add(bmp);
i++;
}
}
}
}