作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过将部分读入字节数组来将内存流拆分成 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/
我是一名优秀的程序员,十分优秀!