gpt4 book ai didi

c# - 在处理基础流后使用 StreamReader?

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

使用 StreamReader,如果你处理底层流,我认为你不应该再读取了。

这是真的表明 this问题,如果底层流的生命在其他地方处理,建议您不必处置 StreamWriter(在他们的情况下)。

但事实并非如此。我所做的是:

我有一个名为 delme.txt 的文件,其中包含以下内容

abc
def
ghi

我运行这个:

    Stream s = File.OpenRead(@"C:\delme.txt");
StreamReader sr = new StreamReader(s, Encoding.ASCII);

Console.WriteLine(sr.ReadLine());

s.Dispose();

Console.WriteLine(sr.ReadLine());

结果是:

abc
def

这怎么可能?

最佳答案

您的 StreamReader 已经将下一行读入其缓冲区。
它不会返回到源 Stream,直到它的缓冲区中的数据用完。

事实上,在那种情况下它不可能抛出异常,因为没有幂等的方法来查明 Stream 是否已被释放。 (没有 IsDisposed 属性)

关于c# - 在处理基础流后使用 StreamReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7392050/

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