"Содержимое всех файлов, размер которых не превышает 50 байт, должно быть записано в файл allFilesContent.txt в отсортированном по имени файла порядке."
не могу найти в чем причина... при проверке все записывает. вроде ок
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) {
String path = args[0];
String resultFileAbsolutePath = args[1];
File directory = new File(path);
File file = new File(resultFileAbsolutePath);
File renameFile = new File(file.getParent() + "/allFilesContent.txt");
Queue<File> queue = new LinkedList<>();
TreeMap<String, String> treeMap = new TreeMap<>();
// TreeSet<String> treeSet = new TreeSet<>();
if (!FileUtils.isExist(file)){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
if (FileUtils.isExist(renameFile)){
FileUtils.deleteFile(renameFile);
FileUtils.renameFile(file, renameFile);
} else FileUtils.renameFile(file, renameFile);
if(directory.isDirectory()){
queue.add(directory);
while (!queue.isEmpty()){
for (File f : queue.poll().listFiles()){
if(f.isDirectory()) queue.add(f);
else {
if (f.length()<=50) {
treeMap.put(f.getName(), f.getAbsolutePath());
}
}
}
}
}
try (FileWriter writer = new FileWriter(renameFile, true)) {
for (Map.Entry<String, String> name : treeMap.entrySet()){
try (BufferedReader reader = new BufferedReader(new FileReader(name.getValue()))) {
while (reader.ready()){
writer.write(reader.readLine());
}
}
writer.write("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}