За исключением использования статической переменной - на лицо всё работает правильно. Однако, валидатор не пускает дальше :( Как вы думаете, в чём может быть проблема?
package com.javarush.task.task31.task3101;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.EnumSet;
import java.util.Map;
import java.util.Objects;
import java.util.TreeMap;
/*
Проход по дереву файлов
*/
public class Solution {
static String result = "";
public static void main(String[] args) throws IOException {
File dir_path = new File(args[0]);
File file_path = new File(args[1]);
if(file_path.exists()){
FileUtils.renameFile(file_path,new File(file_path.getParent() + "\\allFilesContent.txt"));
}
FileWriter fileWriter = new FileWriter(file_path.getParent() + "\\allFilesContent.txt");
for(File file : Objects.requireNonNull(dir_path.listFiles())){
if(file.getName().equals("allFilesContent.txt")) continue;
if(file.isDirectory()){
deepForDir(file);
}
else{
byte[] encoded = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
result += new String(encoded, StandardCharsets.UTF_8) + "\n";
}
}
fileWriter.write(result);
fileWriter.close();
}
public static void deepForDir(File file) throws IOException {
for(File file1 : Objects.requireNonNull(file.listFiles())){
BasicFileAttributes basicFileAttributes = Files.readAttributes(file1.toPath(), BasicFileAttributes.class);
if(basicFileAttributes.isRegularFile()){
if(basicFileAttributes.size() <= 50){
byte[] encoded = Files.readAllBytes(Paths.get(file1.getAbsolutePath()));
result += new String(encoded, StandardCharsets.UTF_8) + "\n";
}
}
else{
deepForDir(file1);
}
}
}
}