gpt4 book ai didi

c# - 解码 LZMA 流 c#

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:42 24 4
gpt4 key购买 nike

我正在尝试将 LZMA 流解码为流对象,这样我就可以从中读取数据而不会占用内存。

我的输入文件看起来像:

some uncompressed data
.
.
some lzma compressed data
.
.

我想读取未压缩的数据,然后创建一个流对象来读取压缩数据的其余部分。

将整个文件读入 byte[] 不是一种选择,因为文件太大。我需要一个流(这必须是可能的,因为你可以压缩非常大的文件)

我试过使用 sevenzipsharp,但由于缺乏文档,像我这样(不是很重要)经验的人无法理解。

有什么建议吗?

编辑:我正在从文件读取到内存中,因此将 zip 文件解码为文件是不够的。

最佳答案

您可以使用 FileStream.Read读取流的未压缩部分的方法。该方法在读取所有未压缩部分后,将底层流的位置推进到压缩部分的开头,从而有效地成为可用于解压的压缩部分的流。

FileStream.Read 用未压缩的数据填充一个字节数组。要轻松解析其内容,您可以使用 BinaryReader像这样:

BinaryReader reader = BinaryReader(new MemoryStream(byteArray));

关于c# - 解码 LZMA 流 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31282418/

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