Kyl*_*yle 4 .net c# io memorystream stream
我有以下代码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();
Run Code Online (Sandbox Code Playgroud)
}
这将返回大部分数据,但会在结尾处截断.但是,我知道数据正在进入流,因为如果我尝试写入文件而不是MemoryStream我获取整个内容.例如,此代码将整个内容写入文件:
using (var outWriter = new StreamWriter(@"C:\temp\test.out"))
{
// my operation that's writing data to the stream
}
Run Code Online (Sandbox Code Playgroud)
你不是在冲洗作家 - 冲洗outStream是没有意义的,因为没有什么可以冲洗它.你应该有:
outWriter.Flush();
Run Code Online (Sandbox Code Playgroud)
在你倒带之前.你以后的代码表明,该数据达到了作家 -而不是流.
或者,StringWriter从一开始就使用...这是一种更简单的创建方式,TextWriter然后在以后写入文本的方法.
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |