Поток вроде бы закрываю, даже добавил try catch finally. Что от меня хочет валя не понятно.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
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 {
File path = new File(args[0]);//"e:/"
File resultFileAbsolutePath = new File(args[1]);//"e:/222/res.txt"
File allFilesContent = new File(String.format("%s/%s", resultFileAbsolutePath.getParent(), "allFilesContent.txt"));
FileOutputStream outputStream = new FileOutputStream(allFilesContent);
if (FileUtils.isExist(resultFileAbsolutePath))
FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
List<File> files = new ArrayList<>();
getFiles(new File(path.getParent()), files);
Collections.sort(files, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
byte[] nl = new byte[]{'\n'};
/* if(FileUtils.isExist(allFilesContent))
FileUtils.deleteFile(allFilesContent);*/
try {
for (File file : files) {
byte[] bytes = Files.readAllBytes(file.toPath());
outputStream.write(bytes);
outputStream.write(nl);
}
}
catch (Exception e){}
finally {
outputStream.close();
}
}
private static void getFiles(File path, List<File> files) throws FileNotFoundException {
for (File file : path.listFiles()) {
if (!file.isDirectory()) {
if (file.length() <= 50)
files.add(file);
} else
getFiles(file.getAbsoluteFile(), files);
}
}
}