Говорит, что могу записывать лишние данные..
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
private static ArrayList<File> fileList = new ArrayList<>();
public static void main(String[] args) throws IOException {
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
File allFilesContent = new File(resultFileAbsolutePath.getParent() + "/allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
try (PrintWriter writer = new PrintWriter(new FileWriter(allFilesContent, true))) {
fillFileList(path.getPath());
fileList.sort(new FileNameComparator());
for (File file : fileList) {
BufferedReader reader = new BufferedReader(new FileReader(file.getAbsolutePath()));
while (reader.ready()) {
writer.write(reader.readLine());
}
writer.write("\n");
reader.close();
}
}
}
//Рекурсивно пробегаем поддиректории и заполняем список файлов
private static void fillFileList(String path) {
File[] files = new File(path).listFiles();
for (File file : files) {
if (file.isDirectory()) {
fillFileList(file.getAbsolutePath());
continue;
}
if (file.length() > 50)
FileUtils.deleteFile(file);
else
fileList.add(file);
}
}
}
//Компаратор для сравнения
class FileNameComparator implements Comparator<File> {
public int compare(File first, File second) {
return first.getName().compareTo(second.getName());
}
}