我有很多带有大量文件的拉链,我必须解压缩到SD卡。
目前,我在拉链内的每个文件中使用util.zip
包Zipentry
。这很好但很慢。
所以我想知道是否有一个lib可以比Java / Android的普通zip更快地处理这些文件。
编辑:拉链是大约5到10MB的档案,包含大约50到100个jpg文件,每个文件都是图片的一部分。我需要将所有拉链提取到特定文件夹。 慢意味着在很短的时间内在IPhone上提取相同的文件。
编辑2代码:
ZipInputStream zin = new ZipInputStream(fd);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
System.out.println("Unzipping " + ze.getName());
if (ze.isDirectory()) {
File f = new File(targetFilePath + ze.getName());
if (!f.isDirectory()) {
f.mkdirs();
}
} else {
int size;
byte[] buffer = new byte[2048];
FileOutputStream outStream = new FileOutputStream(targetFilePath + ze.getName() + ".tile");
BufferedOutputStream bufferOut = new BufferedOutputStream(outStream, buffer.length);
while ((size = zin.read(buffer, 0, buffer.length)) != -1) {
bufferOut.write(buffer, 0, size);
}
bufferOut.flush();
bufferOut.close();
}
}
zin.close();
答案 0 :(得分:1)
你可以做的最好的情况是去NDK方式。 AFAIK,Google甚至在zlib上的NDK中提供受支持的标头/ API。