为什么这段代码不能生成一个带有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。
有什么想法吗?
发布于 2013-04-22 13:39:25
您不会刷新流编写器,因此单词永远不会写入内存流。
在调用streamWriter.Write之后添加以下内容
streamWriter.Flush();此外,如果您想稍后从内存流中读取该字,请确保重置其位置,因为在写入之后,它位于字slappy之后
memoryStream.Position = 0;发布于 2013-04-22 13:50:21
如果您不想调用streamWriter.Flush();,您可以在创建StreamWriter时设置它的AutoFlush-属性。
MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream)
{
AutoFlush = true
}https://stackoverflow.com/questions/16140109
复制相似问题