gpt4 book ai didi

c# - 将内存流拆分为 bytarray

转载 作者:行者123 更新时间:2023-11-30 21:07:45 25 4
gpt4 key购买 nike

我试图通过将部分读入字节数组来将内存流拆分成 block ,但我认为我遇到了一些根本性的错误。我可以读取第一个 block ,但是当我尝试读取剩余的内存流时,即使有更多字节要读取,我也会得到索引超出范围。看来问题是需要与 memorystrem 一样大的接收字节缓冲区的大小。我需要将它转换成 block ,因为代码在网络服务中。

任何人都知道这段代码有什么问题

fb.buffer 是内存流

  long bytesLeft = fb.Buffer.Length;
fb.Buffer.Position = 0;
int offset =0;
int BUFF_SIZE = 8196;


while (bytesLeft > 0)
{
byte[] fs = new byte[BUFF_SIZE];

fb.Buffer.Read(fs, offset, BUFF_SIZE);
offset += BUFF_SIZE;
bytesLeft -= BUFF_SIZE;
}

最佳答案

offset这是数组中的偏移量。这里应该为零。您还应该查看 Read返回 值.不能保证填充缓冲区,即使有更多数据可用。

但是,如果这是一个 MemoryStream - 更好的选择可能是 ArraySegment<byte> ,不需要重复数据。

关于c# - 将内存流拆分为 bytarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170281/

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