Здравствуйте!
Убедись, что в файл allFilesContent.txt не записываются лишние данные.
Подскажите пожалуйста правильный тест для решения вопроса избыточной записи.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Comparator;
/*
Проход по дереву файлов
*/
public class Solution implements Comparator<File> {
ArrayList<File> listFiles50B = new ArrayList<>();
public static void main(String[] args) throws IOException {
Solution sol = new Solution();
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
String renameFile = "allFilesContent.txt";
File allFilesContent = new File(resultFileAbsolutePath.getParent() + "/" + renameFile);
if (FileUtils.isExist(resultFileAbsolutePath)) {
FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
}
if (FileUtils.isExist(allFilesContent)) {
FileUtils.deleteFile(allFilesContent);
}
ArrayList<File> list = sol.listFileForSort(path);
list.sort(sol);
System.out.println(list);
BufferedReader reader = null;
BufferedWriter writer = new BufferedWriter(new FileWriter(allFilesContent));
String line = "";
for (int i = 0; i < list.size(); i++) {
if (!list.get(i).equals(allFilesContent)) {
try {
reader = new BufferedReader(new FileReader(list.get(i)));
while ((line = reader.readLine()) != null) {
writer.write(line);
}
writer.write("\\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
writer.close();
}
private ArrayList<File> listFileForSort(File path) {
for (File file: path.listFiles()) {
if (file.isDirectory()) {
listFileForSort(file);
} else if (file.isFile() && file.length() <= 50) {
listFiles50B.add(file);
}
}
return listFiles50B;
}
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
}