我有一大堆(说1000张)可变尺寸的拉链(从4k到400k说),拉链条目。我设法以经典的方式解压缩所有内容,但性能并不令人满意...你知道一种不同的方式,nio或本机可以帮助提高性能吗?
提前谢谢。 抱歉..我忘了发帖代码:) zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(f)));
while ((zentry = zis.getNextEntry()) != null) {
zentryName = zentry.getName();
File unzippedFile = new File(staging, zentryName);
BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(unzippedFile));
byte buffer[] = new byte[32768];
while ((read = zis.read(buffer, 0, 32768)) > 0) {
fos.write(buffer, 0, read);
}
f.delete();
fos.flush();
fos.close();
zis.closeEntry();
}
zis.close();
答案 0 :(得分:2)
您的代码看起来不错....
在Android上解压缩会很慢。这是相对较低的CPU速度(对于这种类型的操作,ARM肯定比x86差)和SD卡接口的速度(记住你们都在阅读.zip和使用相同的相对低速文件系统编写解压缩的数据) - 未压缩的数据可能比压缩数据多几倍,因此我们在谈论相当多的写入。
除了解决方法之外,你可以做很多事情: