Блок try добавил.
Уже и костыль добавил (18 и 19 строчка).
Я уже не знаю, что смотреть. Помогайте.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Comparator;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
File file = new File(resultFileAbsolutePath.getParent() + "/allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath, file);
fileSort(path, file);
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.close();
}
private static void fileSort(File path, File file) {
ArrayList<File> list = new ArrayList<>();
recursivePath(path, list);
list.sort(Comparator.comparing(File::getName));
readAndWrite(list, file);
}
public static void recursivePath(File path,ArrayList<File> list) {
for (File file : path.listFiles()) {
if (file.isDirectory()){
recursivePath(file,list);
}
if (file.length() <= 50) {
list.add(file);
}
}
}
private static void readAndWrite(ArrayList<File> list, File file) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
BufferedReader reader = null;
for (File pp : list) {
String str;
reader = new BufferedReader(new FileReader(pp));
while ((str = reader.readLine()) != null) {
writer.write(str + "\n");
}
}
reader.close();
writer.close();
}
catch (IOException e){
e.printStackTrace();
}
}
}