Строка 89 writer.close(); есть.
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 List<String> getFileTree(String root) throws IOException {
List<String> result = new ArrayList<>();
EnumSet<FileVisitOption> options = EnumSet.of(FileVisitOption.FOLLOW_LINKS);
Files.walkFileTree(Paths.get(root), options, 20, new GetFiles(result));
return result;
}
private static class GetFiles extends SimpleFileVisitor<Path> {
private List<String> result;
public GetFiles(List<String> result) {
this.result = result;
}
@Override
public FileVisitResult visitFile(Path path, BasicFileAttributes basicFileAttributes) throws IOException {
String s = path.toAbsolutePath().toString();
result.add(s);
return FileVisitResult.CONTINUE;
}
}
public static void main(String[] args) throws IOException {
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
ArrayList<String> listFilesCorr = new ArrayList<String>();
if (FileUtils.isExist(resultFileAbsolutePath)) {
FileUtils.renameFile(resultFileAbsolutePath, new File(path + "\\allFilesContent.txt"));
}
String newFileName = "allFilesContent.txt";
File newFile = new File(resultFileAbsolutePath.getParent() + "/" + newFileName);
if (FileUtils.isExist(resultFileAbsolutePath)) {
FileUtils.renameFile(resultFileAbsolutePath, newFile);
}
FileWriter writer = new FileWriter(newFile, true);
List<String> listFiles = getFileTree(path.getAbsolutePath());
for (String ff: listFiles) {
File file1 = new File(ff);
if (file1.length() <= 50 && !file1.getName().equals("allFilesContent.txt") && file1.isFile() && file1.getName().contains(".txt")) {
listFilesCorr.add(file1.getName());
}
}
Collections.sort(listFilesCorr);
// for (int i = 0; i < listFilesCorr.size(); i++) {
// System.out.println(listFilesCorr.get(i));
// }
for (int i = 0; i < listFilesCorr.size(); i++) {
FileReader reader = null;
try {
reader = new FileReader(path + "\\" + listFilesCorr.get(i));
} catch (FileNotFoundException e) {
for (int d = 0; d < listFiles.size(); d++) {
if (listFiles.get(d).contains(listFilesCorr.get(i))) {
reader = new FileReader(listFiles.get(d));
}
}
}
while (reader.ready()) {
int data = reader.read();
writer.write(data);
}
reader.close();
writer.write("\n");
}
writer.close();
}
}