我从网上下载了一个非常大的 zip 文件,然后想将它解压缩到我的应用程序的存储中。现在这需要相当长的时间,我想知道是否有任何关于如何加快速度的建议。我知道对于 SQLite 数据库,您可以通过调用 beginTransaction() 进行批量插入,并且想知道实际文件输出是否有类似的东西。这是我到目前为止所得到的:
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));
BufferedInputStream in = new BufferedInputStream(zis);
BufferedOutputStream bos;
byte buffer[] = new byte[8 * 1024];
int n;
try {
ZipEntry ze = null;
while ((ze = zis.getNextEntry()) != null)
{
String name = ze.getName();
if (!ze.isDirectory() && !name.contains("MACOSX"))
{
name = prefix + ze.getName();
name = name.replace('/', '_');
bos = new BufferedOutputStream(mContext.openFileOutput(name, Context.MODE_PRIVATE));
while ((n = in.read(buffer)) > 0)
bos.write(buffer, 0, n);
Log.i("Update", name + " is saved to internal storage.");
zis.closeEntry();
bos.close();
}
}
} finally {
in.close();
zis.close();
}