Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用扫描仪读取文本文件_Java_Java.util.scanner - Fatal编程技术网

Java 如何使用扫描仪读取文本文件

Java 如何使用扫描仪读取文本文件,java,java.util.scanner,Java,Java.util.scanner,我试图从文件中读取文本,并将其与用户输入进行比较。但是当我运行它的时候,我会得到一个错误,读取。我不知道怎么了,任何帮助都将不胜感激 线程“main”java.lang.IllegalStateException中的异常:扫描程序 关闭 在java.base/java.util.Scanner.com上重新打开(Scanner.java:1150) 位于java.base/java.util.Scanner.next(Scanner.java:1573) 位于java.base/java.uti

我试图从文件中读取文本,并将其与用户输入进行比较。但是当我运行它的时候,我会得到一个错误,读取。我不知道怎么了,任何帮助都将不胜感激

线程“main”java.lang.IllegalStateException中的异常:扫描程序 关闭 在java.base/java.util.Scanner.com上重新打开(Scanner.java:1150) 位于java.base/java.util.Scanner.next(Scanner.java:1573) 位于java.base/java.util.Scanner.nextInt(Scanner.java:2258) 位于java.base/java.util.Scanner.nextInt(Scanner.java:2212) 位于test123.main(test123.java:32)

您正在关闭它:

sc.close();
然后试着从中读出:

   if(userName.equals(uName) && passWord.equals(pWord)) 
      {
          System.out.println("Welcome " + userName + "!");
          System.out.println("Menu: ");
          System.out.println("\t1) Account");
          System.out.println("\t2) Payroll");
          System.out.println("\t3) Attendance Report");
          System.out.println("\t4) Service Desk");
          int answer = sc.nextInt(); //here



           switch (answer)  {

              case 1:
                  System.out.print("Welcome to Account!");
                  break;
              case 2:
                  System.out.print("Welcome to Payroll!");
                  break;
              case 3:
                  System.out.print("Welcome to Attendance Report!");
                  break;
              case 4:
                  System.out.print("Welcome to Service Desk!");
                  break;
              default:
                  System.out.print("Enter correct menu option");
       }
   }

        else 
      {
          System.out.println("Sorry, you entered invalid credentials. Try again. ");
     }
在末尾放置
sc.close()
,如下所示:

        ...
        ...
        ...
        sc.close();
    }
}
您遇到的错误是因为您试图执行
sc.nextInt()
时,已执行了
sc.close()
关闭
扫描仪
对象。

sc.nextInt()sc.close()之后调用code>
        ...
        ...
        ...
        sc.close();
    }
}