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

本文关键字:NullReferenceException 字符串 比较 从文件读 | 更新日期: 2023-09-27 18:33:03

我有一个客户端.txt文件,其中"a a"作为用户名和密码。如果我没记错的话,这应该从中读取并告诉我它们是否存在于文件中。

编辑:在客户端文件的第二行.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();

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

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

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

不要将密码以明文形式放入文本文件中。

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

您需要重构代码,以便始终捕获来自对 sr 的调用的响应。阅读行。