gpt4 book ai didi

.net - StreamReader.ReadToEnd() 返回一个空字符串

转载 作者:行者123 更新时间:2023-12-04 01:33:04 25 4
gpt4 key购买 nike

我有一个方法

private static String DecompressAndDecode(byte[] data)
{
GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
StreamReader decompressed = new StreamReader(decompressor, Encoding.UTF8);
String result = decompressed.ReadToEnd();
return result;
}

我有一些 GZipped 文本作为输入,结果应该是这个文本的字符串表示。问题是该方法返回一个空字符串。令我困惑的是,当我在 Debug模式下逐步执行该方法并到达 return 语句时,结果变量是一个空字符串,但如果我为 decompressed.ReadToEnd() 表达式创建一个监视,它会返回文本。此时我所期望的是包含文本的结果变量和计算为空字符串的 decompressed.ReadToEnd() 表达式。 (重新评估 decompressed.ReadToEnd() 表达式按预期返回空字符串)。

@编辑:我发现在我的情况下 ReadToEnd() 在第二次调用时返回文本,在第一次调用和第二次调用后返回空字符串。

一定有一些明显的东西我在这里遗漏了。

最佳答案

我认为您的问题是指针在 Steam 中的位置。每次执行 ReadToEnd 后, 指针设置到末尾,这就是您可以第一次观看的原因。

ReadToEnd 之前运行以下代码将指针设置为开头。someStream.Seek(0, SeekOrigin.Begin)

关于.net - StreamReader.ReadToEnd() 返回一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572963/

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