繁体   English   中英

无法创建MemoryStream

[英]Can't create MemoryStream

是否有任何原因为什么此代码不应产生其中包含单词Slappy的内存流?

    private MemoryStream StringBuilderToMemoryStream(StringBuilder source)
    {
        MemoryStream memoryStream = new MemoryStream();
        StreamWriter streamWriter = new StreamWriter(memoryStream);
        streamWriter.Write("slappy");
        return memoryStream;
    }

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

有趣的是,它只能在调用此例程的一种方法上起作用,而不能在其他任何方法上起作用。

我打电话给他们的顺序也没有区别。

但是无论如何,即使我调用上面的方法,从有效的方法中,输出仍然是空的MemoryStream。

有什么想法吗?

您无需刷新流写入器,因此该字永远不会写入内存流。

在对streamWriter.Write的调用之后添加以下streamWriter.Write

streamWriter.Flush();

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

memoryStream.Position = 0;

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

MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream)
   {
      AutoFlush = true
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM