package com.javarush.test.level19.lesson10.home03; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.util.*; /* Хуан Хуанович В метод main первым параметром приходит имя файла. В этом файле каждая строка имеет следующий вид: имя день месяц год где [имя] - может состоять из нескольких слов, разделенных пробелами, и имеет тип String [день] - int, [месяц] - int, [год] - int данные разделены пробелами Заполнить список PEOPLE импользуя данные из файла Закрыть потоки. Не использовать try-with-resources Пример входного файла: Иванов Иван Иванович 31 12 1987 Вася 15 5 2013 */ public class Solution { public static final List<Person> PEOPLE = new ArrayList<Person>(); public static void main(String[] args) throws IOException, ParseException { Calendar birthdayCalendar = new GregorianCalendar(); BufferedReader idReader = new BufferedReader(new InputStreamReader(new FileInputStream(args[0]), StandardCharsets.UTF_8)); String line; while ((line = idReader.readLine()) != null) { StringTokenizer stringTokenizer = new StringTokenizer(line, " "); String[] data = new String[stringTokenizer.countTokens()]; int i = 0; while (stringTokenizer.hasMoreTokens()) { data[i++] = stringTokenizer.nextToken(); } StringBuilder stringBuilder = new StringBuilder(); for (int j = 0; j < data.length - 3; j++) { stringBuilder.append(data[j]); stringBuilder.append(" "); } String name = stringBuilder.toString().trim(); birthdayCalendar.set(Integer.parseInt(data[data.length - 1]), (Integer.parseInt(data[data.length - 2]) - 1), Integer.parseInt(data[data.length - 3])); PEOPLE.add(new Person(name, birthdayCalendar.getTime())); } idReader.close(); } }
package com.javarush.test.level19.lesson10.home03; import java.util.Date; public class Person { private String name; private Date birthday; public Person(String name, Date birthday) { this.name = name; this.birthday = birthday; } public String getName() { return name; } public Date getBirthday() { return birthday; } }
Leave A Comment