У меня возникла ошибка при чтении файла из .dat. Файл .dat настроен следующим образом:Ошибки при попытке чтения из .dat-файла
<Name>/<age>
и я использую/в качестве разделителя. Я пытаюсь читать из файла, чтобы прочитать имя и возраст, но он приходит с этой ошибкой:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:819)
at java.util.Scanner.next(Scanner.java:1431)
at java.util.Scanner.nextInt(Scanner.java:2040)
at java.util.Scanner.nextInt(Scanner.java:2000)
at Lab04a.input(Lab04a.java:26)
at Lab04a.main(Lab04a.java:18)
Java Result: 1
Проблемный метод заключается в следующем:
public void input() {
try {
File dat = new File("Lab04a.dat");
Scanner sc = new Scanner(dat).useDelimiter("/");
String name = sc.next();
int age = sc.nextInt();
Lab.process(name, age);
}
catch(FileNotFoundException e) {
System.out.println("Missing or corrupted data file.");
System.exit(0);
}
}
линии, дающие ошибки линии 26 и 18, и эти строки:
Line 18:
Lab.input();
И строка 26:
int age = sc.nextInt();
Строка 18 не может иметь ничего плохого, так как она называет только проблемный метод. Строка 26 (насколько мне известно), где происходит ошибка.
Можете ли вы опубликовать ваше содержимое файла, а? спасибо :) –
«Сканер» ищет целое число после '/', и файл не содержит целого числа. – manouti
@manouti, когда содержимое файла не ясно, как мы можем быть уверены в этом? –