создавать объекты с переменными из текстового файла, у меня есть:Не могу читать из .txt в Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args){
ArrayList<Employee> ArrEmployee = new ArrayList<Employee>(); // array for employee objects
try {
Scanner txtIn = new Scanner(new File("/Users/PatrickBui/Documents/workspace/COMP 249 - Assignment 3/src/payroll.txt"));
while (txtIn.hasNext()) { // looping through the payroll.txt file and creating Employee objects from its data
long EmployeeNumber = txtIn.nextLong();
String EmployeeName = txtIn.next();
String LastName = txtIn.next();
double HoursWorked = txtIn.nextDouble();
double HourlyWage = txtIn.nextDouble();
ArrEmployee.add(new Employee(EmployeeNumber,EmployeeName,LastName,HoursWorked,HourlyWage));
}
} catch (FileNotFoundException e) {
System.out.println("fail to find file payroll");
}
}
}
До сих пор я не знаю, что может сделайте это неправильно. Payroll.txt отформатирован как таковой:
31718 PHILLIP LENNOX 55.0 20.00
11528 NANCY TROOPER 40.0 10.45
16783 JOHN CONNAUGHT 30.5 10.00
10538 PETER DUNCAN 45.0 10.75
21O15 JAMES HAROLD 32.0 10.50
И я получаю эти ошибки при запуске программы:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextLong(Scanner.java:2222)
at java.util.Scanner.nextLong(Scanner.java:2182)
at Main.main(Main.java:16)
Идеи о том, почему это происходит? Мой код выглядит в правильном порядке, и это действительно меня озадачивает.
Код выглядит отлично. Я могу только предположить, что входной файл каким-то образом поврежден. Фактически, протестируйте его, заменив File только источником String для сканера: 'String file =" 31718 PHILLIP LENNOX 55.0 20.00 \ n11528 NANCY TROOPER 40.0 10.45 "; Сканер txtIn = новый сканер (файл); '. Хорошо работает тогда, так что должен быть файл, который я предполагаю. –