我有以下代码正在使用StreamWriter
写信给MemoryStream
。但是,当我尝试读回流时,我得到的数据被截断:
using(var outStream = new MemoryStream())
using (var outWriter = new StreamWriter(outStream))
{
// my operation that's writing data to the stream
var outReader = new StreamReader(outStream);
outStream.Flush();
outStream.Position = 0;
return outReader.ReadToEnd();
}
这将返回大部分数据,但会在末尾处截断。但是,我知道数据正在进入流,因为如果我尝试写入文件而不是写入文件MemoryStream
我得到了全部内容。例如,以下代码将全部内容写入文件:
using (var outWriter = new StreamWriter(@"C:\temp\test.out"))
{
// my operation that's writing data to the stream
}
你没有让作家脸红——脸红outStream
是没有意义的,因为没有什么可以冲洗它。你应该有:
outWriter.Flush();
在倒回之前。你后面的代码证明数据到达了writer- 不是stream.
或者,只需使用StringWriter
从一开始...这是创建一个更简单的方法TextWriter
然后稍后将文本写入其中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)