Прочитать из файла даты и поместить в конструктор

Мне нужно прочитать из файла 4 даты и поместить их в конструктор. То есть, каждую строку присвоить к переменной и в конструктор. И еще проверить их по регулярному выражению. Вот мой кусочек кода:

Offender off = new Offender("Сотников", "Евгений", "Валерьевич");
Pattern pattern = Pattern.compile("^[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])");

Matcher matcher;

Freedom freedom;

FileReader fr= new FileReader("file1.txt");
Scanner scan = new Scanner(fr);
LocalDate date, date1, date2, date3;
LinkedList<Freedom> free = new LinkedList<>();
while (scan.hasNextLine()) {
    String s = scan.nextLine();
    matcher = pattern.matcher(s);
    while (matcher.find()) {

        ... - как то присвоить каждую строку с файла к date, date1,...
            freedom = new Freedom(date, date1, date2, date3, off);
            free.add(freedom);
    }   
}

for(Freedom f: free)
{
    System.out.println(f);
}
fr.close();

Вот сам конструктор:

public class Freedom implements  Comparable<Freedom> {
private LocalDate dateOfCrime;//дата судимостей
private LocalDate dateOfLastduresse;//дата последнего заключения
private LocalDate dateOfLastexemption;//дата последнего освобождения
private LocalDate dateOfBirth;
private Offender offender;

public Offender getOffender() {
    return offender;
}

public void setOffender(Offender offender) {
    this.offender = offender;
}

public Freedom(LocalDate dateOfCrime, LocalDate dateOfLastduresse, LocalDate dateOfLastexemption, LocalDate dateOfBirth, Offender offender)
{
    this.dateOfCrime=dateOfCrime;
    this.dateOfLastduresse=dateOfLastduresse;
    this.dateOfLastexemption=dateOfLastexemption;
    this.dateOfBirth= dateOfBirth;
    this.offender=offender;
}

Ответы (1 шт):

Автор решения: Николай Гнап

Вы можете читать файл построчно для этого используйте код ниже, где line это переменная в которую записана строка.

String line = Files.readAllLines(Paths.get("C:\\Users\\Николай\\Documents\\TestSMS\\GSM.txt")).get(в скобках указываете строку которую нужно читать к примеру 3);

и потом проверять регулярным выражением для поска даты.

(0?[1-9]|1[12])
→ Ссылка