Товарищи, код отрабатывает как надо, что не так?
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException, ArrayIndexOutOfBoundsException {
String path = args[0];
String resultFileAbsolutePath = args[1];
File file = new File(resultFileAbsolutePath);
File newName = new File("S:/test/allFilesContent.txt");
File folder = new File(path);
List<File> fileList = new ArrayList<>();
FileOutputStream writer = null;
FileInputStream reader = null;
if (FileUtils.isExist(file)) {
FileUtils.renameFile(file, newName);
for (File dirFile: folder.listFiles()) {
if (dirFile.length() <= 50 && dirFile.getName().endsWith(".txt")) {
fileList.add(dirFile);
}
}
Comparator<File> fileComparator = Comparator.comparing(File::getName);
Collections.sort(fileList, fileComparator);
writer = new FileOutputStream(newName, true);
for (File wrFile: fileList) {
reader = new FileInputStream(wrFile);
while (reader.available() > 0) {
int data = reader.read();
writer.write(data);
}
writer.write("\n".getBytes());
}
writer.close();
}
reader.close();
}
}
/*
Первый - path - путь к директории, второй - resultFileAbsolutePath - имя (полный путь) существующего файла, который будет содержать результат.
2. Переименовать resultFileAbsolutePath в allFilesContent.txt (используй метод FileUtils.renameFile(), и, если понадобится, FileUtils.isExist()).
3. Для каждого файла в директории path и в ее всех вложенных поддиректориях выполнить следующее:
Если у файла длина в байтах НЕ больше 50, то для всех таких файлов:
3.1. Отсортировать их по имени файла в возрастающем порядке, путь не учитывать при сортировке.
3.2. В allFilesContent.txt последовательно записать содержимое всех файлов из п. 3.1. После каждого тела файла записать "\n".
Все файлы имеют расширение txt.
В качестве разделителя пути используй "/".
Для создания файлов используй конструктор File(String pathname).
Требования:
1. Файл, который приходит вторым параметром в main, должен быть переименован в allFilesContent.txt.
2. Нужно создать поток для записи в переименованный файл.
3. Содержимое всех файлов, размер которых не превышает 50 байт, должно быть записано в файл allFilesContent.txt в отсортированном по имени файла порядке.
4. Поток для записи в файл нужно закрыть.
5. Не используй статические переменные.
*/