Подскажите, пожалуйста, что не так в моём цикле while. Почему, доходя до 67-ой строчки кода (if (s.isEmpty()) { ), идея выбрасывает NullPointerException? При этом содержимое файла копируется корректно. Заранее спасибо!
![]()

package com.javarush.task.task16.task1630;
import java.io.*;
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();
} 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 - добавьте код тут
System.out.println(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 = null;
private StringBuilder sb = new StringBuilder("");
@Override
public void setFileName(String fullFileName) {
this.fullFileName = fullFileName;
}
@Override
public String getFileContent() {
return sb.toString();
}
@Override
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fullFileName)));
while (!isInterrupted()) {
String s = reader.readLine();
if (s.isEmpty()) {
reader.close();
break;
}
sb.append(s).append(" ");
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//add your code here - добавьте код тут
}