我编写了一个在java中使用zip文件的小例子。实际上,我想知道,如果有更快的方法来提取这样的文件。如果我用更大的文件(比如1GB或更多)测试我的工具,那么这个过程需要很长时间。 我很感谢你的每一条建议。
我这样做:
$(this)
答案 0 :(得分:2)
也许这不是你正在等待的答案,但你想尝试this package;使用最新的稳定版本,您的代码可以减少"对此(请注意,目标目录不能存在):
final Path zipFile = Paths.get("path/to/file.zip");
final Path dstDir = Paths.get("path/to/destination/directory");
try (
final FileSystem zipfs = MoreFileSystems.openZip(zipFile, true);
) {
MoreFiles.copyRecursize(zipfs.getPath("/"), dstDir,
RecursionMode.FAIL_FAST);
}
这将使用JRE提供的zip文件系统提供程序;它可能会或可能不会针对您的用例进行优化(我还没有检查过!)。
Javadoc链接: