Метод run класса ReadFileThread должен считывать строки из файла, установленного методом setFileName. А метод getFileContent, этого же класса, должен возвращать вычитанный контент. Возвращаемое значение - это одна строка, состоящая из строк файла, разделенных пробелами.
Убедись, что метод getFileContent возвращает только вычитанный контент, и не добавляет к нему ничего лишнего.
package com.javarush.task.task16.task1630;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static String firstFileName;
public static String secondFileName;
static {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
firstFileName = reader.readLine();
secondFileName = reader.readLine();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
catch (NullPointerException e){
e.printStackTrace();
}
}
public static class ReadFileThread extends Thread implements ReadFileInterface {
private String fileName = "";
private String fileContent = "";
List<String> list = new ArrayList<>();
@Override
public void setFileName(String fullFileName) {
fileName = fullFileName;
}
@Override
public String getFileContent() {
for (String s: list) {
fileContent += s;
fileContent += " ";
}
return fileContent;
}
@Override
public void run() {
{
String string = null;
try (BufferedReader fr = new BufferedReader(new FileReader(new File(fileName)))) {
while ((string = fr.readLine())!= null) {
list.add(string);
}
fr.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
fileContent = string;
}
}
}
}
//add your code here - добавьте код тут
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.setFileName(fileName);
f.start();
f.join();
//add your code here - добавьте код тут
System.out.println(f.getFileContent());
}
public interface ReadFileInterface {
void setFileName(String fullFileName);
String getFileContent();
void join() throws InterruptedException;
void start();
}
//add your code here - добавьте код тут
}