Пробовала и с FileReader / Writer, и с OutputStream - вывод не меняется, но валидатору, энивей, не нравится. А файлы пишется все правильно
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws Exception {
File resultFileAbsolutePath = new File(args[1]);
File allFilesContent = new File(resultFileAbsolutePath.getParentFile() + "/allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
// if (FileUtils.isExist(allFilesContent)) { FileUtils.deleteFile(resultFileAbsolutePath); }
// File argsFile = new File("/Users/mac/Documents/JR Tasks/FilesPath/черепа.txt");
// System.out.println(argsFile.getPath());
File folder = new File(args[0]);
ArrayList<File> listFiles = new ArrayList<>(Arrays.asList(Objects.requireNonNull(folder.listFiles())));
ArrayList<File> filesLessThan50 = new ArrayList<>();
for (int i = 0; i < listFiles.size(); i++) {
if (listFiles.get(i).length() <= 50) {
filesLessThan50.add(listFiles.get(i));
}
}
Comparator fileComparator = Comparator.comparing(File::getName);
filesLessThan50.sort(fileComparator);
//BufferedWriter writer = new BufferedWriter(new FileWriter(allFilesContent));
OutputStreamWriter writer1 = new OutputStreamWriter(new FileOutputStream(allFilesContent));
for (int i = 0; i < filesLessThan50.size(); i++) {
//BufferedReader reader = new BufferedReader(new FileReader(filesLessThan50.get(i)));
InputStreamReader reader1 = new InputStreamReader(new FileInputStream(filesLessThan50.get(i)));
while (reader1.ready()) {
writer1.write(reader1.read());
}
writer1.write("\n");
reader1.close();
}
writer1.close();
}
}
///Users/mac/Documents/Комп Саши/JavaRushPath/ - args[0]
///Users/mac/Documents/JR Tasks/resultFileAbsolutePath.rtf