我試圖獲取一個程序來讀取文本文件的內容,將每行存儲在數組中,然後以每種類型的有序方式輸出結果。我有排序的部分了,但我每次運行主程序時,我不斷收到錯誤消息的try/catch(這仍然是一個進展中的工作)使用掃描器從文件中讀取時得到異常
package p20;
import java.io.*;
import java.util.*;
public class EmployeeOrderingDemo {
public static void main(String[] args) {
Scanner input=null;
ArrayList<EmployeeFX> employeeList=new ArrayList<EmployeeFX>();
try {
FileReader Info=new FileReader("P01_DATA.txt");
input=new Scanner(Info).useDelimiter("\\s\\s+");
}
catch(FileNotFoundException noFile) {
System.out.println("Can't open file");
System.exit(1);
}
try {
while(input.hasNextLine()) {
employeeList.add(new EmployeeFX(input.nextInt(),input.next(),input.next(), input.nextBoolean(), input.nextInt()));
input.nextLine();
}
}
catch(NoSuchElementException element) {
System.err.println("Wrong type of file");
System.exit(1);
}
catch(IllegalStateException state) {
System.err.println("Couldn't read from file");
System.exit(1);
}
if(input!=null) {
input.close();
}
}
}
我得到「錯誤消息類型文件「。是否因爲我需要跳過文本文件的標題?
這裏的EmployeeFX代碼
package p20;
public class EmployeeFX {
private int id;
private String firstName;
private String lastName;
private boolean salaried;
private double salary;
public EmployeeFX(int id, String firstName, String lastName,boolean salaried, int salary) {
this.id=id;
this.firstName=firstName;
this.lastName=lastName;
this.salaried=salaried;
this.salary=salary;
}
}
而這裏的堆棧跟蹤
java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at p20.EmployeeOrderingDemo.main(EmployeeOrderingDemo.java:26)
這裏的輸入文本文件
id firstName lastName salaried salary
200 Caroline James false 37654
2 Julian James false 46499
1 Conor Habgren true 88767
10 Tillie Donalan true 98456
15 Alice Jeanu true 72821
12 Fred Habgren false 28767
103 Mary Donalan false 28456
135 Ed Jeanu true 52821
打印堆棧跟蹤,並將其包括:'element.printStracktrace()' – wvdz
嘗試EmployeeFX類的代碼添加到您的文章 – HDJEMAI
java.util.InputMismatchException \t在java.util.Scanner.throwFor(未知源) \t在java.util.Scanner.next(來源不明) \t在java.util.Scanner.nextInt(來源不明) \t在java.util.Scanner.nextInt(來源不明) \t在p20.EmployeeOrderingDemo .main(EmployeeOrderingDemo.java:26) – Matt