в директории
directoryName
ищутся файлы не более 50 байт
сортируются по имени файла
и их содержимое записывается в файл
fileReName
но вместо ожидаемого вывода
result
result2
я получаю
result爊獥汵㉴
public class Solution {
public static void main(String[] args) {
TreeMap<String, String> map = new TreeMap<>();
String directoryName = args[0];
String resultFileAbsolutePath = args[1];
File directoryNameFile = new File(directoryName);
File resultFile = new File(resultFileAbsolutePath);
File fileReName = new File(resultFile.getParentFile() + "/allFilesContent.txt");
if (FileUtils.isExist(fileReName)) {
FileUtils.deleteFile(fileReName);
}
FileUtils.renameFile(resultFile, fileReName);
new Solution().findFiles(directoryNameFile, map);
try (FileOutputStream fos = new FileOutputStream(fileReName, true)) {
for (Map.Entry<String, String> entry : map.entrySet()) {
File iFile = new File(entry.getValue());
try (FileInputStream fis = new FileInputStream(iFile)) {
while (fis.available() > 0) {
fos.write(fis.read());
}
fos.write("\n".getBytes());
}
}
} catch (Exception e) {
}
}
public void findFiles(File fileName, Map<String, String> map) {
for (File file : Objects.requireNonNull(fileName.listFiles())) {
if (file.isDirectory()) {
findFiles(file, map);
} else if (file.isFile()) {
if (file.length() <= 50) {
System.out.println("добавили файл " + file.getName());
map.put(file.getName(), file.getAbsolutePath());
}
}
}
}
}