Перепробовал довольно много вариаций, но одна и та же ошибка
package com.javarush.task.task19.task1904;
import javax.xml.crypto.Data;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Scanner;
/*
И еще один адаптер
Адаптировать Scanner к PersonScanner.
Классом-адаптером является PersonScannerAdapter.
В классе адаптере создать приватное финальное поле Scanner fileScanner. Поле инициализировать в конструкторе с одним аргументом типа Scanner.
Данные в файле хранятся в следующем виде:
Иванов Иван Иванович 31 12 1950
Петров Петр Петрович 31 12 1957
В файле хранится большое количество людей, данные одного человека находятся в одной строке. Метод read() должен читать данные только одного человека.
*/
public class Solution {
public static void main(String[] args) {
}
public static class PersonScannerAdapter implements PersonScanner {
private Scanner fileScanner;
public PersonScannerAdapter(Scanner fileScanner){
this.fileScanner = fileScanner;
}
@Override
public Person read() throws IOException, ParseException {
String line = fileScanner.nextLine();
String [] personalData = line.split("");
String firstname = personalData[0];
String midlename = personalData[1];
String last = personalData[2];
GregorianCalendar birthDate = new GregorianCalendar(Integer.parseInt(personalData[5]), Integer.parseInt(personalData[4]) - 1, Integer.parseInt(personalData[3]));
Date date = birthDate.getTime();
return new Person(firstname, midlename, last, date);
}
@Override
public void close() throws IOException {
this.fileScanner.close();
}
}
}