level19.lesson10.home03 Задваивается результат

Всем привет, помогите, почему в консоли задваивается результат 1-го человека из списка?
Задание
/* Хуан Хуанович
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя день месяц год
где [имя] - может состоять из нескольких слов, разделенных пробелами, и имеет тип String
[день] - int, [месяц] - int, [год] - int
данные разделены пробелами

Заполнить список PEOPLE импользуя данные из файла
Закрыть потоки. Не использовать try-with-resources

Пример входного файла:
Иванов Иван Иванович 31 12 1987
Вася 15 5 2013
*/

Код:
package com.javarush.test.level19.lesson10.home03;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Solution {
    public static final List<Person> PEOPLE = new ArrayList<Person>();

    public static void main(String[] args) throws IOException, ParseException {
        BufferedReader reader = new BufferedReader(new FileReader(args[0]));
        while (reader.ready()) {
            StringBuilder name = new StringBuilder();
            StringBuilder date = new StringBuilder();
            String[] data = reader.readLine().split(" ");
            for (String d : data) {
                try {
                    date.append(Integer.parseInt(d));
                    if (d.length() == 1) {
                        d = "0" + d;
                    }
                    date.append(" ");
                } catch (NumberFormatException e) {
                    name.append(d);
                    name.append(" ");
                }
            }
            String nameString = name.toString().trim();
            Date birthday = new SimpleDateFormat("dd MM yyyy").parse(date.toString().trim());
            PEOPLE.add(new Person(nameString, birthday));
            for (Person p : PEOPLE) {
                System.out.println(p.getName() + " " + p.getBirthday());
            }
        }
        reader.close();
    }
}


Файл peoples.txt
Иванов Иван Иванович 31 12 1987
Вася 15 5 2013


Вывод программы в консоль:
Иванов Иван Иванович Thu Dec 31 00:00:00 MSK 1987
Иванов Иван Иванович Thu Dec 31 00:00:00 MSK 1987
Вася Wed May 15 00:00:00 MSK 2013

Process finished with exit code 0

1 комментарий

Archie369
Сам нашел ошибку! Вынес блок вывода содержимого листа за пределы цикла while(reader.ready())
Тему можно закрывать!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.