是否有任何理由为什么这段代码不应该生成带有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.
有什么想法吗?
您不刷新流编写器,因此永远不会将该字写入内存流.
调用后添加以下内容streamWriter.Write:
streamWriter.Flush();
Run Code Online (Sandbox Code Playgroud)
此外,如果您想稍后从内存流中读取该单词,请确保重置其位置,因为在写入后它位于单词后面slappy:
memoryStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)