Доброго времени суток, уважаемые знатоки.
Не могу понять в чем проблема. Валидатор написал в рекомендации от ментора следующее: "Убедись что метод getFileContent возвращает пустую строку, если метод run не запускался."
Вписал пустую строку через тернарный оператор, все равно не пускает.
Никак не могу понять где допустил ошибку.
package com.javarush.task.task16.task1630;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Последовательный вывод файлов
*/
public class Solution {
public static String firstFileName;
public static String secondFileName;
public static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static {
try {
firstFileName = reader.readLine();
secondFileName = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
//напишите тут ваш код
public static void main(String[] args) throws InterruptedException {
systemOutPrintln(firstFileName);
systemOutPrintln(secondFileName);
}
public static void systemOutPrintln(String fileName) throws InterruptedException {
ReadFileInterface f = new ReadFileThread();
f.setFullFileName(fileName);
f.start();
f.join();
System.out.println(f.getFileContent());
}
public interface ReadFileInterface {
void setFullFileName(String fullFileName);
String getFileContent();
void join() throws InterruptedException;
void start();
}
//напишите тут ваш код
public static class ReadFileThread extends Thread implements ReadFileInterface {
ArrayList<String> list;
@Override
public void run() {
list = new ArrayList<>();
try(BufferedReader buffer = new BufferedReader(new FileReader(getName()))) {
while (buffer.ready()) {
list.add(buffer.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void setFullFileName(String fullFileName) {
this.setName(fullFileName);
}
@Override
public String getFileContent() {
return list == null ? "" : String.join(" ", list);
}
}
}