首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DotNetZip流

DotNetZip流
EN

Stack Overflow用户
提问于 2012-02-08 03:33:34
回答 1查看 1.1K关注 0票数 3

我正在尝试压缩一堆文件,并通过流使数据可用。

我希望保持尽可能小的内存占用。

我的想法是实现一个流,其中我有一堆FileStream对象作为数据成员。当我的Stream上的Read方法被调用时,我会从我的一个文件流中读取一些数据,并使用ZipOutputStream实例将压缩数据写入临时存储流,然后将读取请求转发到该临时存储流。

这个临时存储流将只是一个字节队列。当这些字节被移动到缓冲区中时(通过调用Read),它们将从队列中删除。这样,我将只存储尚未读取的字节。

不幸的是,似乎当我处理一个ZipOutputStream时,为了创建一个有效的压缩文件,它需要写入随机的文件位置。这将阻止我使用“转瞬即逝的数据”解决方案。

希望这一切都清楚了:)

在创建zip文件时,有没有其他方法可以最小化内存占用?请帮帮我!

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 04:31:15

ZipOutputStream不需要写入输出流中的随机位置(换句话说,调用Seek())。但是,如果您写入的流报告它是CanSeek的,它将使用该功能来更新一些标头。

因此,请确保您正在写入的流为CanSeek()返回false,一切都应该正常工作。

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

https://stackoverflow.com/questions/9182623

复制
相关文章

相似问题

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