[英]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.