не вижу ошибки, буду благодарен за помощь.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) {
Set<File> files = getFilesSet(args[0]);
String[] order = getSortFilesArray(files);
File destination = getDestination(args[1]);
addToFileAll(destination, files, order);
}
public static void addToFile(BufferedOutputStream writer, File source, boolean separate) {
try (BufferedInputStream reader = new BufferedInputStream(new FileInputStream(source))) {
if (separate)
writer.write('\n');
while (reader.available() > 0) {
byte[] buff = new byte[reader.available()];
reader.read(buff);
writer.write(buff);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void addToFileAll(File destination, Set<File> files, String[] order) {
try (BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(destination, true))) {
boolean separate = false;
if (destination.length() > 0)
separate = true;
for (String s : order)
for (File f : files) {
if (s.equals(f.getName())) {
addToFile(writer, f, separate);
separate = f.length() > 0;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static Set<File> getFilesSet(String path) {
File pathFile = new File(path);
File[] dir = pathFile.listFiles();
Set<File> result = new HashSet<>();
for (File f : dir) {
if (f.isFile() & f.length() <= 50) {
result.add(f.getAbsoluteFile());
} else if (f.isDirectory()) {
result.addAll(getFilesSet(f.getPath()));
}
}
return result;
}
public static String[] getSortFilesArray(Set<File> list) {
String[] result = new String[list.size()];
int i = 0;
for (File f : list)
result[i++] = f.getName();
Arrays.sort(result);
return result;
}
public static File getDestination(String path) {
File out = new File(path);
String newPath = out.getParent() + "\\" + "allFilesContent.txt";
File destination = new File(newPath);
FileUtils.renameFile(out, destination);
return destination;
}
}