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