package com.javarush.test.level19.lesson03.task04;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
/* И еще один адаптер
Адаптировать Scanner к PersonScanner.
Классом-адаптером является PersonScannerAdapter.
Данные в файле хранятся в следующем виде:
Иванов Иван Иванович 31 12 1950
В файле хранится большое количество людей, данные одного человека находятся в одной строке. Метод read() должен читать данные одного человека.
*/
public class Solution {
public static class PersonScannerAdapter implements PersonScanner {
private Scanner scanner;
public PersonScannerAdapter(Scanner scanner) {
this.scanner = scanner;
}
@Override
public Person read() throws IOException {
String[] lines = scanner.nextLine().split(" ");
Calendar calendar = new GregorianCalendar(Integer.parseInt(lines[5]), Integer.parseInt(lines[4])-1, Integer.parseInt(lines[3]));
Person person = new Person(lines[1], lines[2], lines[0], calendar.getTime());
return person;
}
@Override
public void close() throws IOException {
this.scanner.close();
}
}
}
package com.javarush.test.level19.lesson03.task04;
import java.io.IOException;
public interface PersonScanner {
Person read() throws IOException;
void close() throws IOException;
}
package com.javarush.test.level19.lesson03.task04;
import java.util.Date;
public class Person {
private String firstName;
private String middleName;
private String lastName;
private Date birthDate;
public Person(String firstName, String middleName, String lastName, Date birthDate) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.birthDate = birthDate;
}
@Override
public String toString() {
return String.format("%s %s %s %s", lastName, firstName, middleName, birthDate.toString());
}
}
Leave A Comment