Java扫描程序类从文本文件读取制表符分隔的字符串

时间:2018-10-18 04:40:59

标签: java

我是一名学习Java编码的学生。 我正在尝试检查文本文件中的用户名和密码。如果文本文件包含用户名,则接下来的3个字段将分配给变量。

该文本文件具有4个制表符分隔的字段和5条唯一的行。

如果我从文本文件的第一行输入用户名和密码,则可以获取布尔值以返回true。如果我输入任何其他用户名或密码,则布尔值保持为false。我使用一种打印方法,并说出while循环遍历整个文件。

我试图弄清楚为什么没有将文本文件的其他行与用户名或密码变量进行比较。

我的代码:

while (inFS.hasNext() && !userGood && !passGood) {
    credString = inFS.next();
    System.out.println(credString);

    if (userName.equals(credString)) {
        userGood = true;
        System.out.println("*****userGood TRUE");
        encryptedPass = inFS.next();
        unencryptedPass = inFS.next();
        userRole = inFS.next();
        if (sb.toString().equals(encryptedPass)){
            passGood = true;
            System.out.println("*****passGood TRUE");
            break;
      }                                                           
 }                       

}

1 个答案:

答案 0 :(得分:0)

问题在于next()方法不会跳过一行,因此您应该在进行下一次迭代时进行nextLine()调用。