gpt4 book ai didi

c# - 读取时数据从内存流中截断

转载 作者:太空狗 更新时间:2023-10-30 00:32:34 25 4
gpt4 key购买 nike

我有以下代码使用 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();

在倒带之前。您后面的代码证明数据到达了编写器 - 而不是

或者,从一开始就使用 StringWriter...这是创建 TextWriter 然后稍后将文本写入其中的一种更简单的方法。

关于c# - 读取时数据从内存流中截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16987545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com