I don't know where is the mistake
package com.codegym.task.task31.task3101;
import java.io.File;
import java.io.*;
import java.io.IOException;
import java.util.*;
/*
Iterating through a file tree
*/
public class Solution {
public static void main(String[] args) throws IOException{
File path = new File(args[0]);
File resultFileAbsolutePath = new File(args[1]);
resultFileAbsolutePath.createNewFile();
File renamingFile = new File(resultFileAbsolutePath.getParent() + "\\allFilesContent.txt");
FileUtils.renameFile(resultFileAbsolutePath,renamingFile);
List<File> listFiles = findInnerFiles(path);
Collections.sort(listFiles, new Comparator<File>(){
@Override
public int compare(File file1, File file2) {
// TODO Auto-generated method stub
return file1.getName().compareTo(file2.getName());
}
});
writeFilesContent(renamingFile, listFiles);
}
public static List<File> findInnerFiles(File parentDir){
List<File> files = new ArrayList<File>();
File[] list = parentDir.listFiles();
for(File fileItem : list) {
if(fileItem.isFile() && fileItem.length()<=50 ) files.add(fileItem);
if(fileItem.isDirectory()) {
files.addAll(findInnerFiles(fileItem));
}
}
return files;
}
public static void writeFilesContent(File container , List<File> files) throws IOException{
BufferedWriter writer = null;
BufferedReader reader = null;
try{
writer =new BufferedWriter( new FileWriter(container));
for(File file : files) {
reader = new BufferedReader(new FileReader(file));
while(reader.ready()) {
writer.write(reader.read());
writer.flush();
}
writer.write((int) '\n');
}
}finally{
if(writer != null) try{
writer.close();
}catch(Exception e){
}
if(reader != null) try{
reader.close();
}catch(Exception e){
}
}
}
}