Но я не вижу никаких лишних данных в файле.
Что не нравится валику?
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) {
Map<File, String> map = new HashMap<>();
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
getFilesList(path, map);
List<Map.Entry<File, String>> list =
new LinkedList<>(map.entrySet());
Collections.sort( list, new Comparator<Map.Entry<File, String>>()
{
@Override
public int compare(Map.Entry<File, String> o1, Map.Entry<File, String> o2)
{
return (o1.getValue()).compareTo( o2.getValue() );
}
} );
Map<File, String> result = new LinkedHashMap<>();
for (Map.Entry<File, String> entry : list)
{
result.put(entry.getKey(), entry.getValue());
}
File newFile = new File(resultFileAbsolutePath.getParent()+"/allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath, newFile);
int count = result.size();
try {
FileWriter writer = new FileWriter(newFile);
for (Map.Entry<File, String> pair : result.entrySet()) {
FileReader reader = new FileReader(pair.getKey());
while (reader.ready()) {
writer.append((char) reader.read());
}
reader.close();
if (count > 1) {
writer.write("\r\n");
}
count --;
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void getFilesList(File file, Map map) {
for (File f : file.listFiles())
{
if (f.isDirectory())
getFilesList(f, map);
else {
if (f.length() <= 50)
map.put(f, f.getName());
}
}
}
}