次のコードを使用して、テキスト ファイルから一連の変数を読み込もうとしています。
public static Book readBook(String pathname) throws IOException, InputMismatchException {
Scanner fl = new Scanner (new FileInputStream (fn));
int num = fl.nextInt();
double thePrice = 0;
String theAuthor = null;
String theTitle = null;
for (int i=0; i<=num; i++) {
theTitle = fl.nextLine();
theAuthor = fl.nextLine();
thePrice = fl.nextDouble();
}
System.out.print(num);
System.out.print(theTitle);
System.out.print(theAuthor);
fl.close();
return new Book(theTitle, theAuthor, thePrice);
}
File には、必要なパスの数を示すために while ループで使用される数値が含まれています。ファイルは次のようになります。
2
name
author
10.00
name2
author2
12.00
しかし、これは入力不一致エラーをスローし、何らかの理由で最初の行を「name2」として読み取り、順序を台無しにし、コードが倍精度に達したときにエラーを引き起こします。どんな助けでも大歓迎です!
スタックトレース:
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 Model.readBook(Model.java:36)