Есть мнения куда рыть или сдаться?
Программа замечательно переименовывает файл и в него пишет содержимое фалов с размером не более 50 байт.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.*;
import java.util.stream.Collectors;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
String path = args[0];
String resultFileAbsolutePath = args[1];
List<File> list;
File oldFile = new File(resultFileAbsolutePath);
File directory = new File(path);
String newFileName = "allFilesContent.txt";
String absoluteFilePath = oldFile.getParent() + newFileName;
File newFile = new File(absoluteFilePath);
if (FileUtils.isExist(newFile)) newFile.delete();
FileUtils.renameFile(oldFile, newFile);
MyFileVisitor myVisitor = new MyFileVisitor();
Files.walkFileTree(Paths.get(path), myVisitor);
list = myVisitor.getList();
Collections.sort(list, (obj1,obj2) -> obj1.getName().compareTo(obj2.getName()));
PrintStream stream = new PrintStream(newFile);
for(File file : list){
System.out.println(file.getName());
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsoluteFile())));
int data;
while (reader.ready()) {
data = (char)reader.read();
stream.write(data);
}
stream.println();
reader.close();
}
stream.close();
}
}
class MyFileVisitor extends SimpleFileVisitor<Path> {
private List<File> list = new ArrayList<>();
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (attrs.size() <= 50) {
list.add(file.toFile());
}
return FileVisitResult.CONTINUE;
}
public List<File> getList() {
return this.list;
}
}