我正在尝试读取文本文件,但我不断收到“java.util.InputMismatchException”。
主类:
dc.loadData(new File("DVDCollection.txt"));
读取/加载文件数据的类:
Scanner inputFile = null;
public void loadData(File fileName) {
try {
inputFile = new Scanner (new File("DVDCollection.txt"));
}
catch (Exception FileNotFoundException) {
System.out.println("ERROR: " + FileNotFoundException.getMessage());
System.exit(1);
}
while (inputFile.hasNext()) {
String fileTitle = inputFile.nextLine();
String fileCategory = inputFile.nextLine();
String fileRunningTime = inputFile.nextLine();
int fileYear = inputFile.nextInt();
double filePrice = inputFile.nextDouble();
DVD dvdEntry = new DVD(fileTitle, fileCategory, fileRunningTime, fileYear, filePrice);
DVDlist.add(dvdEntry);
}
inputFile.close();
}
文本文件每行有一条信息,没有换行符。
例子:
Movie title1 (Sttring)
movie category1 (String)
movie duration1 (String)
movie year1 (int)
movie price1 (double)
Movie title2
movie category2
movie duration2
movie year2
movie price2
etc
etc...
这是一个应该读入的实际示例:
Adam
Documentary
78 minutes
2012
7.99
Choo Choo
Documentary
60 minutes
2006
11.99
错误说明了什么:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at XXXX_XXXX.DVDCollection.loadData(DVDCollection.java:29)
at XXXX_XXXX.DVDApplication.main(DVDApplication.java:14)