gpt4 book ai didi

c# - DotNetZip 流媒体

转载 作者:行者123 更新时间:2023-11-30 18:01:21 27 4
gpt4 key购买 nike

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

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

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

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

不幸的是,当我处理 ZipOutputStream 时,它似乎需要写入随机文件位置才能创建有效的 zip 文件。这将阻止我使用我的“短暂数据”解决方案。

希望一切都清楚:)

在创建 zip 文件时是否有其他方法可以最大限度地减少内存占用?请帮忙!

谢谢!

最佳答案

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

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

关于c# - DotNetZip 流媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182623/

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