Видимо, как-то не так я подошел к решению, хотя всё соответствует условиям, как мне кажется ...
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Comparator;
/*
Проход по дереву файлов
*/
public class Solution implements Comparator<File> {
public int compare(File o1, File o2) {
String str1 = o1.getName();
String str2 = o2.getName();
return str1.compareTo(str2);
}
public static void main(String[] args) throws IOException {
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
File allFilesContent = new File("C:\\allFilesContent.txt");
ArrayList<File> file50 = new ArrayList<>();
for (File fileEntry : path.listFiles()) {
if (fileEntry.isDirectory()) {
for (File file : fileEntry.listFiles()) {
if (file.length() <= 50) {
file50.add(file);
}
}
} else if (fileEntry.isFile()) {
if (fileEntry.length() <= 50) {
file50.add(fileEntry);
}
}
}
Solution comparator = new Solution();
file50.sort(comparator);
if (FileUtils.isExist(resultFileAbsolutePath)) {
FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
}
StringBuilder builder = new StringBuilder();
BufferedWriter writer = new BufferedWriter(new FileWriter(allFilesContent));
for (int i = 0; i < file50.size(); i++) {
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file50.get(i)));
int c;
while ((c = inputStream.read()) != -1) {
builder.append((char) c);
}
builder.append("\n");
inputStream.close();
}
writer.write(builder.toString());
writer.close();
}
}