не могу разобраться в чем подвох от валидатора с потоками п.2, 4.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.*;
import java.util.stream.Collectors;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
String path = args[0];
String resultFileAbsolutePath = args[1];
File filesPath = new File(path);
File allFileContent = new File(resultFileAbsolutePath);
File allFileContentNew = new File(allFileContent.getParentFile() + "/allFilesContent.txt");
if (FileUtils.isExist(allFileContentNew)) {
FileUtils.deleteFile(allFileContentNew);
}
FileUtils.renameFile(allFileContent, allFileContentNew);
Map<String, File> map = new TreeMap<>();
for (String s : getFileTree(path)) {
File file = new File(s);
if (file.length() <= 50) {
map.put(s, file);
}
}
try (BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(allFileContentNew)))) {
for (String fileName : map.keySet()) {
File value = map.get(fileName);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(value)));
List<String> fileContent = new ArrayList<>();
while (bufferedReader.ready()) {
fileContent.add(bufferedReader.readLine() + "\n");
}
for (String str : fileContent) {
bufferedWriter.write(str);
}
bufferedReader.close();
}
}
}
public static List<String> getFileTree(String root) throws IOException {
List<String> list = new LinkedList<>();
File folder = new File(root);
Queue queue = new LinkedList();
do {
if (queue.size() != 0) {
folder = new File((String) queue.poll());
}
for (File file : Objects.requireNonNull(folder.listFiles())) {
if (file.isDirectory()) {
queue.add(file.getAbsolutePath());
}
if (file.isFile()) {
list.add(file.getAbsolutePath());
}
}
} while (queue.size() > 0);
return list;
}
}