为什么找不到或打开我的文件

本文关键字:我的 文件 找不到 为什么 | 更新日期: 2023-09-27 18:35:53

我在''bin''Debug文件夹中添加了一个.txt文件,并尝试打开它并从中读取,如下所示:

using (StreamReader reader = File.OpenText("Credentials.txt")) {
    string line = null;
    do {
        line = reader.ReadLine();
        if (line.Contains("host=")) {
    . . .

但是,尽管文件在那里,但当我到达"ReadLine()"行时,它会停止跟踪:

System.NullReferenceException 未处理 消息=对象引用未设置为对象的实例。

更新

我不得不把它从"do...while (line != null);"改成"while (! reader.EndOfStream)"

为什么找不到或打开我的文件

这没有意义。我不知道任何File.OpenText成功返回并且返回值null的情况。如果File.OpenText找不到该文件,则会抛出FileNotFoundException

确定您声明的行实际上是引发异常的行吗?请仔细检查堆栈跟踪。

请注意,循环顺序错误。您正在调用StreamReader.ReadLine,然后检查该行是否包含"host="。但可能是您已经到达流的末尾,在这种情况下,line将为 null,您将抛出。重写循环的一种方法是

while ((line = reader.ReadLine()) != null) {
    if (line.Contains("host=")) {
    }
}

我并不是说这是最好的方法(我不认为是),但它是 C# 中的常见习语。

如果您坚持认为您是正确的,请打印输出

Console.WriteLine(reader == null);

您将立即放置在

line = reader.ReadLine();

线。

尝试使用文件的完整路径:

  using (StreamReader sr = new StreamReader("c:''Users''fullpath''file.txt"))