п.3 не проходит.
Хотя все работает
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
String path_args0 = args[0];
String path_args1 = args[1];
// String path_args0 = "E:\\shab\\Forms\\Sandbox\\JavaProject\\Exp";//путь к директории path
// String path_args1 = "E:\\shab\\Forms\\Sandbox\\JavaProject\\Exp\\3101.txt"; //имя (полный путь) существующего файла, который будет содержать результат.
File filePath_args0 = new File(path_args0);
File filePath_args1 = new File(path_args1);
File filePathAllFileContent = new File(filePath_args1.getParent() + "/allFilesContent.txt");
//if (FileUtils.isExist(filePath_args1)) {
FileUtils.renameFile(filePath_args1, filePathAllFileContent);
//}
Queue<File> queue = new LinkedList<>();
queue.add(filePath_args0);
List<File> listFiles = new ArrayList<>();
while (queue.peek() != null) {
File file = queue.remove();
for (File f : Objects.requireNonNull(file.listFiles())) {
if (f.isDirectory()) {
queue.add(f);
//System.out.println("Директория " + f.getName() + " добавлена в колекцию");
} else {
if (f.length() <= 50) {
listFiles.add(f);
}
}
}
}
Collections.sort(listFiles, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
int countFiles = 0;
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePathAllFileContent, true))) {
for (File file : listFiles) {
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) {
if (countFiles != 0) {
bos.write("\n".getBytes());
}
byte[] buffer = new byte[bis.available()];
bos.write(buffer);
}
countFiles++;
}
//System.out.println(listFiles);
//System.out.printf("Записано %d файлов", countFiles);
}
}
}