Убедись, что метод 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 br= new BufferedReader(new InputStreamReader(System.in));
try {
firstFileName=br.readLine();
secondFileName=br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
//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 - добавьте код тут
f.getFileContent();
}
public interface ReadFileInterface {
void setFileName(String fullFileName);
String getFileContent();
void join() throws InterruptedException;
void start();
}
public static class ReadFileThread extends Thread implements ReadFileInterface {
private String fullFilename;
String s = "";
@Override
public void run() {
BufferedReader br = null;
String s = "";
List<String> list = new ArrayList();
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(fullFilename)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
while ((s=br.readLine())!=null) {
//s = br.readLine();
list.add(s);
}
} catch (IOException e) {
e.printStackTrace();
}
StringBuilder sb = new StringBuilder();
for (String w : list) {
s = sb.append(w + " ").toString();
}
System.out.println(s);
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void setFileName(String fullFileName) {
this.fullFilename = fullFileName;
}
@Override
public String getFileContent() {
return s;
}
}
//add your code here - добавьте код тут
}