getFileContent не возвращает пустую строку, если метод run не запускался.
package com.javarush.task.task16.task1630;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static String firstFileName;
public static String secondFileName;
//add your code here - добавьте код тут
static {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
firstFileName = reader.readLine();
secondFileName = reader.readLine();
reader.close();
}catch (IOException e) {}
}
public static void main(String[] args) throws InterruptedException {
systemOutPrintln(firstFileName);
systemOutPrintln(secondFileName);
}
public static void systemOutPrintln(String fileName) throws InterruptedException {
// ReadFileInterface f = new ReadFileThread();
ReadFileInterface f = new ReadFileThread(fileName);
f.setFileName(fileName);
f.start();
//add your code here - добавьте код тут
f.join();
System.out.println(f.getFileContent());
}
public interface ReadFileInterface {
void setFileName(String fullFileName);
String getFileContent();
void join() throws InterruptedException;
void start();
}
//add your code here - добавьте код тут
public static class ReadFileThread extends Thread implements ReadFileInterface{ // Runnable or Thread??
private String line, line1;
private String fileName;
public ReadFileThread(String fileName) {
this.fileName = fileName;
}
@Override
public void run() { // считывание файла, закрыть поток, разделить пробелом троки файла
try {
BufferedReader reader = new BufferedReader(new FileReader(getFileName()));
line = reader.readLine();
while (( line1 = reader.readLine()) != null) {
line = line + " " + line1;
}
reader.close();
} catch (Exception e) {}
}
@Override
public void setFileName(String fullFileName) {
this.fileName = fullFileName;
}
public String getFileName() {
return this.fileName;
}
@Override
public String getFileContent() { // работает
// возврат содержимого файла
if (line == null) line = " ";
else line.trim();
return line;
}
// @Override
// public void join() throws InterruptedException { // куда вставить??? вызвать для последовательного вывода файла
// }
}
}