gpt4 book ai didi

c# - 为什么我需要两次调用来流式传输 CopyTo?

转载 作者:太空狗 更新时间:2023-10-29 17:55:38 25 4
gpt4 key购买 nike

我有以下方法,但出于某种原因,第一次调用 Copy to 似乎什么也没做?有人知道为什么吗?该方法的输入被压缩,如果需要,base64 可以提供该方法。

private byte[] GetFileChunk(string base64)
{
using (
MemoryStream compressedData = new MemoryStream(Convert.FromBase64String(base64), false),
uncompressedData = new MemoryStream())
{

using (GZipStream compressionStream = new GZipStream(compressedData, CompressionMode.Decompress))
{
// first copy does nothing ?? second works
compressionStream.CopyTo(uncompressedData);
compressionStream.CopyTo(uncompressedData);
}

return uncompressedData.ToArray();
}
}

最佳答案

如果对 Read() 的第一次调用返回 0,则 Stream.CopyTo() 也不会工作。虽然这表明 GZipStream 存在问题,但它非常不太可能有这样的错误。更有可能是在您创建压缩数据时出了点问题。比如先压缩0字节,再压缩真正的数据。

关于c# - 为什么我需要两次调用来流式传输 CopyTo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440065/

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