我必须从包含超过 100000 个文件的 zip 文件中读取文件,并且我使用的是 Java 1.6,所以我暂时使用 Apache commons 压缩库。但是,ZipFile() 的构造函数需要大约 30 秒才能返回。(我承认我使用的机器已经过时了,一台具有 8GB RAM 的 C2D E6550,但如果 zip 文件的文件少于 65535 个,构造函数几乎会立即返回)
现在我需要加快速度,因为我们的程序非常频繁地打开 zip 文件,而 ZipFile 构造函数所花费的时间实在是太长了。我有两个选择:1)将 zip 文件拆分为具有 <65535 个文件的卷或 2)缓存 ZipFile 对象并重用它
但是,两者都需要大量的重构/重写,所以在我继续使用任何一种解决方案之前,有没有办法使用不同的库加速读取 zipfile,或者我在 Apache commons compress 上做错了什么?这就是我创建 zipfile 对象的方式:
final File f = new File(zipFileName);
if(f.exists() == false)
throw new FileNotFoundException(zipFileName);
ZipFile zip = new ZipFile(f);
关于如何解决这个问题的任何想法?