[英]How to read text file using scanner
我试图从文件中读取文本并将其与用户输入进行比较。 但是当我运行它时,我会收到一个错误消息。 我不知道出了什么问题,任何帮助将不胜感激!
线程“main”中的异常 java.lang.IllegalStateException:扫描仪在 java.base/java.util.Scanner.ensureOpen(Scanner.java:1150) at 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) )
import java.util.Scanner;
import java.io.*;
public class test123 {
public static void main(String[] args) throws IOException {
Scanner sc1 = new Scanner(System.in);
System.out.println("Please enter correct credentials to log in");
System.out.println("Username: ");
System.out.println("Password: ");
String userName = sc1.nextLine();
String passWord = sc1.nextLine();
File inFile = new File("employee.txt");
Scanner sc = new Scanner(inFile);
String uName = sc.nextLine();
String pWord = sc.nextLine();
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();
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();
然后尝试从中读取:
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. ");
}
我试图从文件中读取文本并将其与用户输入进行比较。 但是当我运行它时,我会看到一条错误消息。 我不知道出了什么问题,我们将不胜感激!
线程“主”中的异常java.lang.IllegalStateException:扫描程序在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 )
import java.util.Scanner;
import java.io.*;
public class test123 {
public static void main(String[] args) throws IOException {
Scanner sc1 = new Scanner(System.in);
System.out.println("Please enter correct credentials to log in");
System.out.println("Username: ");
System.out.println("Password: ");
String userName = sc1.nextLine();
String passWord = sc1.nextLine();
File inFile = new File("employee.txt");
Scanner sc = new Scanner(inFile);
String uName = sc.nextLine();
String pWord = sc.nextLine();
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();
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. ");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.