首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建MemoryStream

无法创建MemoryStream
EN

Stack Overflow用户
提问于 2013-04-22 13:37:29
回答 2查看 156关注 0票数 1

为什么这段代码不能生成一个带有Slappy这个词的内存流?

代码语言:javascript
复制
    private MemoryStream StringBuilderToMemoryStream(StringBuilder source)
    {
        MemoryStream memoryStream = new MemoryStream();
        StreamWriter streamWriter = new StreamWriter(memoryStream);
        streamWriter.Write("slappy");
        return memoryStream;
    }

即使我说streamWriter.Write(source.toString());,它也失败了。

有趣的是,它在调用此例程的方法之一上有效,但在其他任何方法上都不起作用。

我调用它们的顺序也没有区别。

但不管怎样,即使我调用上面的方法,从工作的方法,输出仍然是一个空的MemoryStream。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-22 13:39:25

您不会刷新流编写器,因此单词永远不会写入内存流。

在调用streamWriter.Write之后添加以下内容

代码语言:javascript
复制
streamWriter.Flush();

此外,如果您想稍后从内存流中读取该字,请确保重置其位置,因为在写入之后,它位于字slappy之后

代码语言:javascript
复制
memoryStream.Position = 0;
票数 8
EN

Stack Overflow用户

发布于 2013-04-22 13:50:21

如果您不想调用streamWriter.Flush();,您可以在创建StreamWriter时设置它的AutoFlush-属性。

代码语言:javascript
复制
MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream)
   {
      AutoFlush = true
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16140109

复制
相关文章

相似问题

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