Ни как не могу побороть 3й пункт.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length == 2){
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
File allFilesContent = new File(resultFileAbsolutePath.getParent()+"/allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath,allFilesContent);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(allFilesContent,true));
ArrayList<File> listFiles = new ArrayList<>();
new Solution().getListFilesLess50(path, listFiles);
Collections.sort(listFiles, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (File file : listFiles){
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
while (bufferedInputStream.available() > 0){
bufferedOutputStream.write(bufferedInputStream.read());
}
bufferedOutputStream.write(System.lineSeparator().getBytes());
bufferedInputStream.close();
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
}
private void getListFilesLess50(File path, ArrayList<File> listFiles) {
if (path.isFile()){
if (path.length() <= 50){
listFiles.add(path);
}
}
else {
for (File file : path.listFiles()){
if (file.length() <= 50) {
getListFilesLess50(file, listFiles);
}
}
}
}
}