gpt4 book ai didi

java - 寻找有关 ZipInputStream 的知识

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:04 26 4
gpt4 key购买 nike

那么使用ZipInputStream时,要在WEB上获取Zip文件的InputStream,使用时是否会将整个ZIP文件下载到用户计算机中?

例如,如果程序使用 ZipInputStream 来查看 zip 的内容,它实际上是如何工作的?它会下载 zip 然后查看它吗?

最佳答案

ZIP 文件结构类似于 (LOC+Content)+ CEN,其中 LOC+Content 是 header 和每个单独条目的内容,CEN 是索引。

ZipInputStream 仅使用每个条目之前的“本地文件 (LOC)”记录,一次一个条目地顺序读取输入源。

它不支持回溯到先前的条目,这意味着不可能获取所有条目的列表,然后读取某些条目的内容。

它不支持通常位于 ZIP 文件末尾的中央目录 (CEN) 记录。仅使用 LOC 记录并忽略 CEN 从技术上讲并不是读取 ZIP 文件的正确方法,但通常不是很关键。例如,CEN 提供了一种将某些条目标记为已删除的方法,而无需从文件中物理删除它们,因此忽略 CEN 将导致读取过时的条目。

如果您需要获取 ZIP 文件中的条目列表,则必须扫描整个文件,这意味着如果通过 HTTP 访问则下载整个文件。如果您需要在之后读取某些条目的内容,则必须打开一个新的 HTTP 连接并重新读取(跳过)至少一定量的数据,直到所需的条目为止。

看来先将整个 ZIP 文件下载到本地计算机,然后使用本地文件可能是更好的解决方案。

关于java - 寻找有关 ZipInputStream 的知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583435/

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