а не StringBuilder, это ради синхронизации нитей? они здесь есть? или какие другие причины? mport 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.Calendar; import java.util.GregorianCalendar; import java.util.List; /* Хуан Хуанович */ public class Solution4 { public static final List<Person> PEOPLE = new ArrayList<Person>(); public static void main(String[] args) throws IOException, ParseException { String name = args[0]; String nextLine = ""; StringBuilder sb = new StringBuilder(); try (BufferedReader fr1 = new BufferedReader(new FileReader(name)) ) { while ((nextLine = fr1.readLine()) != null) { String [] array = nextLine.split(" "); for (int i = 0; i < array.length - 3; i++) { sb.append(array[i] + " "); } String famImOtch = sb.toString().trim(); int day = Integer.parseInt(array[array.length - 3]); int month = Integer.parseInt(array[array.length - 2]) - 1; int year = Integer.parseInt(array[array.length-1]); Calendar birthday = new GregorianCalendar(year, month, day); PEOPLE.add(new Person(famImOtch, birthday.getTime())); sb.setLength(0); } } for (Person first : PEOPLE) { System.out.println(first.getName() + " : " + first.getBirthDate()); SimpleDateFormat sdf = new SimpleDateFormat("y MM d"); System.out.println(first.getName() + " : " + sdf.format(first.getBirthDate())); } } }