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