比较字符串从文件读入时的NullReferenceException?

时间:2012-05-02 23:11:26

标签: c# file-io streamreader

我有一个带有" a a"的client.txt文件。作为用户名和密码。如果我没有弄错的话,应该从中读取并告诉我文件中是否存在。

编辑:在clients.txt文件的第二行,我有" b b"作为用户名和密码,他们工作正常。

图片显示:(新用户无法发布图片)

    StreamReader sr = new StreamReader("clients.txt");
    int findIndex = -1;
    string userpass = "#";
    while (findIndex == -1 && sr.ReadLine() != null)
    {
        findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password);
        userpass = sr.ReadLine();
    }
    sr.Close();

2 个答案:

答案 0 :(得分:3)

你的while()语句正在吞噬线条。您需要在正文中移动ReadLine()调用:

    while (findIndex == -1) {
        userpass = sr.ReadLine();
        if (userpass == null) break;
        findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password);
    }

请勿将密码以明文形式放入文本文件中。

答案 1 :(得分:2)

您在while语句中对sr.Readline的调用将读取(并忽略)文本文件的第一行,因此在第二次调用sr之后,要比较的第一行将是文本文件的第二行。的ReadLine。

您需要重构代码,以便始终捕获对sr.ReadLine的调用的响应。