1

我目前正在尝试创建一个下载管理器(DLManager),您可以提交在线文件的链接,它会跟踪所有下载的进度。我非常适合普通文件,但我想添加下载和解压缩 zip 文件的功能。我已经让它通过两个基本步骤工作:初始化,然后下载。初始化过程设置一个 zipInputStream 并使用 FileEntry.getName 和 .getSize 为存档收集文件信息。使用此信息,我可以计算队列的总下载大小以及恢复下载的任何先前进度。当 DLManager 队列启动链接时,它会通过设置另一个 zipInputStream 并使用 .read 方法将文件输出到磁盘来开始下载步骤。

我遇到的问题是,当我初始化文件时需要很长时间。只需初始化一个 zip 文件,我就可以下载三个以上的大型视频文件。我对 zipInputStream 的工作方式感到困惑。它只是先流式传输标头信息,然后等待 .read 命令下载其余部分,还是在返回标头信息之前实际下载整个存档?如果它确实一次下载所有内容,是否有办法重用 zipInputStream(返回第一个条目)?我试着去阅读 zipInputStream 的源代码但迷路了。我会感谢任何可以阐明这个问题的人。谢谢。

4

0 回答 0