Я пытаюсь прочитать данные из текстового документа, отформатированного таким образом:
123 Fluffy 12/04/2017 34 2
124 Domino 11/23/2018 12 1
125 Rover 9/8/2018 45 10
, и должно получиться так:
ID No. 123 : Fluffy : 2 years old : 34lbs
Registered on 12/04/2017
ID No. 124 : Domino : 1 years old : 12lbs
Registered on 11/23/2018
ID No. 125 : Rover : 10 years old : 45lbs
Registered on 9/8/2018
При этом, однако, он выводит эту ошибку:
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at DogRunner1.main(DogRunner1.java:56)
Код для объекта выглядит следующим образом:
public class Dog1
{
String name;
int age;
// regDate -- registration date (in the format: "YYYY/MM/DD")
String regDate;
int weight;
int idNumber;
public String bark() {
return "bark";
}
public void setAge(int a) {
age = a;
}
public void setRegDate(String b) {
regDate = b;
}
public void setId(int c) {
idNumber = c;
}
public void setWeight(int d) {
weight = d;
}
public String toString()
{
return "ID No. " + idNumber + " : " + name + " : " + age + " years old : " + weight +"lbs \nRegistered on " + regDate;
}
}
, а код для программы, которая его запускает, выглядит следующим образом:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class DogRunner1
{
public static void main(String[] args) throws FileNotFoundException
{
Dog1 d3;
d3 = new Dog1();
File text = new File ("dogdata.txt");
Scanner inFile = new Scanner(text);
while(inFile.hasNext()) {
d3.setId(inFile.nextInt());
d3.name = inFile.nextLine();
inFile.nextLine();
d3.setRegDate(inFile.nextLine());
d3.setWeight(inFile.nextInt());
d3.setAge(inFile.nextInt());
System.out.println(d3);
inFile.nextLine();
}
inFile.close();
}
}
Я знаю, что вам нужно пропустить строку между двумя строками, или, по крайней мере, я думаю, что это то, о чем я думаю, и я пробовал много комбинаций размещения nextLine (), но безрезультатно. Я понятия не имею, что не так, пожалуйста, помогите.