Видимо валидатор тоже не понимает меня ))) Пишет:
Сервер не может корректно протестировать присланное решение. Убедись в наличии всех необходимых классов. Проверь, что в решении нет бесконечных циклов.
package com.javarush.task.task19.task1904;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;
/*
И еще один адаптер
*/
public class Solution {
public static void main(String[] args) throws IOException, ParseException {
}
public static class PersonScannerAdapter implements PersonScanner {
private final Scanner fileScanner;
public PersonScannerAdapter(Scanner fileScanner) {
this.fileScanner = fileScanner;
}
@Override
public Person read() throws IOException, ParseException {
FileInputStream fileInputStream = new FileInputStream("E:\\1.txt");
byte[] buffer = new byte[fileInputStream.available()];
while (fileInputStream.available() > 0) {
fileInputStream.read(buffer);
}
String s = "";
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < buffer.length; i++) {
s += (char) buffer[i];
}
s = s.replace("\n", " ").replace("\r", "");
String snew = "";
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) != 32 ){
snew += s.charAt(i);
}
else{
list.add(snew);
snew="";
}
}
System.out.println(list);
String string = list.get(3)+list.get(4)+list.get(5);
DateFormat format = new SimpleDateFormat("ddMMyyyy", Locale.ENGLISH);
Date date = format.parse(string);
return new Person(list.get(0),list.get(1),list.get(2),date);
}
@Override
public void close() throws IOException {
fileScanner.close();
}
}
}