为了账号安全,请及时绑定邮箱和手机立即绑定

如何加速解析 Java 中 zip 文件中的条目

如何加速解析 Java 中 zip 文件中的条目

慕后森 2021-09-03 17:14:00
我有一个 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 文件 那是我找到代码的地方。


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信