Если у кого нибудь есть идеи подскажите пожалуйста🙏
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) {
File dir = new File(args[0]);
File result = new File(args[1]);
File temp = new File(result.getParent() + "/allFilesContent.txt");
FileUtils.deleteFile(temp);
FileUtils.renameFile(result, temp);
try (FileOutputStream outputStream = new FileOutputStream(result)) {
List<File> files = new ArrayList<>();
getAllFiles(dir, files);
writeAllFiles(outputStream, files);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void writeAllFiles(FileOutputStream dst, List<File> files) {
files.stream()
.filter(f -> f.length() <= 50)
.sorted(Comparator.comparing(File::getName))
.map(f -> {
try {
return new FileInputStream(f);
} catch (Exception ignored) {
return null;
}
})
.filter(Objects::nonNull)
.forEach(f -> {
try {
byte[] buf = new byte[50];
int len = f.read(buf);
dst.write(buf, 0, len);
dst.write("\n".getBytes());
f.close();
} catch (Exception e) {
e.printStackTrace();
}
});
}
public static void getAllFiles(File dir, List<File> list) {
for (File file : Objects.requireNonNull(dir.listFiles())) {
if (file.isDirectory())
getAllFiles(file, list);
else list.add(file);
}
}
}