gpt4 book ai didi

java - 如何在不创建任何新文件的情况下访问 zip 文件中目录中的文件?

转载 作者:行者123 更新时间:2023-12-01 15:14:48 24 4
gpt4 key购买 nike

我正在开发一个 java 项目,该项目要求我访问多个嵌入式 zip 文件和目录中的文件。

例如,archive1.zip/archive1/archive2.zip/archive2/directory1/file_that_I_need.txt。

如果在提取每个 zip 文件时,它会立即列出其内容,但里面有一个包含所有内容的文件夹,那就容易多了。

我在网上找到的示例涉及 zip 文件,这些文件在解压后包含它们需要访问的文件,但我找不到任何涉及访问 zip 文件中目录中的文件的示例。对此的任何建议都会很棒。

谢谢!

最佳答案

鉴于禁止创建新文件,您几乎只能使用 ZipInputStream 。 。当您找到与嵌入存档相对应的 ZipEntry 时,您可以读取其流以查找实际文件。您可以根据需要递归地处理任意多个存档级别。

如果您要处理单个文件,这可以正常工作。然而,重新读取多个文件的存档可能会很昂贵。更好的解决方案是至少将外部存档打开为 ZipFile ,它内存映射实际文件。

如果您可以将包含的文件提取到临时目录中并将它们作为 ZipFile 打开,您可能会看到速度的大幅提升(只要您提取多个文件)来自每个嵌入式文件)。

关于java - 如何在不创建任何新文件的情况下访问 zip 文件中目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com