无法创建MemoryStream

gri*_*egs 1 c# memorystream

是否有任何理由为什么这段代码不应该生成带有Slappy一词的内存流?

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

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

有趣的是,它适用于调用此例程的方法之一,但不适用于任何其他方法.

我称之为的顺序也没有区别.

但无论如何,即使我调用上述内容,从有效的方法来看,输出仍然是一个空的MemoryStream.

有什么想法吗?

Dan*_*rth 8

您不刷新流编写器,因此永远不会将该字写入内存流.

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

streamWriter.Flush();
Run Code Online (Sandbox Code Playgroud)

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

memoryStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)