c# - 如何检查 StreamReader 是否仍然打开?

标签 c#

我尝试用一​​些额外的方法和属性在类 Fichier 中“包装”一个 StreamReader

我想要两件事:

  • StreamReaderFichier类中自动打开;
  • StreamReader 在我们使用覆盖方法 ReadLine 时打开,而不是之前(我们需要在使用 StreamReader 读取文件之前修改文件) >).

我的一段代码如下所示:

public string ReadLine()
{
    if (Reader == null || ???)
    {
        Reader = new StreamReader(Path);
    }
    return Reader.ReadLine();
}

??? 处,我想检查 StreamReader 是否已关闭。事实上,如果我们这样做:

StreamReader sr = new StreamReader(path);
sr.Close();

sr 不为空,但如何检查它是否已关闭,以及如何重新打开它?

如果你想知道为什么我需要打开和关闭StreamReader,那是因为Fichier对象需要随时存在,但是它代表的文件需要修改在外部程序中多次。

最佳答案

最简单的方法是Dispose(你真的应该这样做,它也会关闭流)并在关闭时将其设置为null

您可以选择检查 EndOfStream,但这需要您读取到流的末尾。

关于c# - 如何检查 StreamReader 是否仍然打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750841/

相关文章:

c# - SQL "IN"CLAUSE 性能问题

c# - 有没有一种简单的方法来检查重复的快捷键?

c# - 删除行时内存不足 > 500000 Entity Framework 6

c# - 为什么我不能在 xaml 中定义网格模板?

c# - 如何在运行时增加 byte[] 大小?

c# - "Closure over variable gives slightly worse performance"。如何?

c# - 我如何在 C++ 中使用 ArrayList?

c# - 从浏览器控制我的应用程序?

c# - 使用泛型转换不同的用户输入类型

时间:2019-03-17 标签:c#asyncwebclient