首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BufferedStream MemoryStream()不写MemoryStream()吗?

BufferedStream MemoryStream()不写MemoryStream()吗?
EN

Stack Overflow用户
提问于 2017-03-20 10:50:38
回答 1查看 482关注 0票数 2

我在试验BufferedStream out MemoryStream

代码语言:javascript
复制
using (var ms = new MemoryStream(64))
using (var bs = new BufferedStream(ms, 32))
{
    var buffer = new byte[] { 0xab, 0xab, 0xab, 0xab };
    bs.Write(buffer, 0, buffer.Length);
    bs.Flush();

    var actual = new byte[4];

    int cb = ms.Read(actual, 0, actual.Length);
    Console.WriteLine(cb);
}

它打印0。我原以为它会打印4,因为我认为bs.Flush()会将4缓冲的字节写入ms

我是用错了BufferedStream,还是我的期望完全错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 10:52:24

你必须写

代码语言:javascript
复制
ms.Position = 0;
int cb = ms.Read(actual, 0, actual.Length);

这是一个非常的常见错误,在写到它之后忘记倒带一个MemoryStream() :-) (假设我每次都这么做:-)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42901676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档