首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找关于ZipInputStream的知识

寻找关于ZipInputStream的知识
EN

Stack Overflow用户
提问于 2014-05-10 16:18:03
回答 1查看 79关注 0票数 1

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

例如,如果程序使用ZipInputStream来查看zip的内容,它到底是如何工作的?它是下载了拉链,然后再查看它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-10 16:59:18

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

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

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

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

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

首先将整个ZIP文件下载到本地计算机,然后处理本地文件,这似乎是更好的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23583435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档