我有一个 Web 服务,可以动态解析 zip 文件的内部文件结构(文件名、目录等),并将结果作为 json 发送回。它工作正常,只是 zip 文件包含一些非常大的文件,即使 zip 文件中只有几个文件,也可能需要长达几十秒的时间才能得到答案。我怀疑解压缩算法必须解析整个文件才能获得不同的 zip 条目。我正在使用标准的 java zip 库。下面是一些基本代码: ZipInputStream zis = new ZipInputStream(new FileInputStream(new File(myFilePath))); ZipEntry zipEntry = zis.getNextEntry(); while(zipEntry != null){ // code to generate the json file tree --- // --- end of code zipEntry = zis.getNextEntry(); }我没有阅读文件的内容或任何内容,只是遍历条目。事实上,我可以像上面一样空运行它,但它仍然需要很多时间(和 CPU)。有没有办法加快这个过程?也许更好的图书馆?
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
根据评论,这样做的更好方法是,即使用 ZipFile 而不是 ZipInputStream
final ZipFile file = new ZipFile(filePath);
final Enumeration<? extends ZipEntry> entries = file.entries();
while ( entries.hasMoreElements() ) {
final ZipEntry zipEntry = entries.nextElement();
// code to generate the json file tree ---
// --- end of code
}
}
所有学分都应该归于 Wasim Wani 对以下问题的回答在 Java 中有效地读取 zip 文件 那是我找到代码的地方。
添加回答
举报
0/150
提交
取消