Тестировал, все работает.
Если по замечаниям:
Создай объект File с новым именем файла allFilesContent.txt. Нужно указать полный путь.
FileUtils.renameFile(file,new File(fileDir + "\\allFilesContent.txt"));
Нужно создать поток для записи в переименованный файл.
fileOutputStream = new FileOutputStream(direction+"\\allFilesContent.txt",true);
fileOutputStream.write(filesContent);
fileOutputStream.write(separate);
fileOutputStream.close();
Содержимое всех файлов, размер которых не превышает 50 байт, должно быть записано в файл allFilesContent.txt в отсортированном по имени файла порядке.
int _size= new FileInputStream(direction+"\\"+s).available();
if(_size<50 && !s.equals("allFilesContent.txt")){
list.add(s);
}
Поток для записи в файл нужно закрыть.
fileOutputStream.close();
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
File fileDir = new File(args[0]);
fileDir.mkdir(); //создали директорию
File file = new File(args[1]); //создали файл
FileUtils.renameFile(file,new File(fileDir + "\\allFilesContent.txt"));
// file.renameTo(new File(fileDir + "\\allFilesContent.txt"));
String[] myDir=fileDir.list();
// System.out.println(myDir);
fillNewFile(myDir, fileDir);
}
private static void fillNewFile(String[] array, File direction) throws IOException{
ArrayList<String> list = new ArrayList<>();
for (String s: array) {
int _size= new FileInputStream(direction+"\\"+s).available();
if(_size<50 && !s.equals("allFilesContent.txt")){
list.add(s);
}
}
Collections.sort(list);
BufferedInputStream bufferedInputStream;
FileOutputStream fileOutputStream;
for (String s:list) {
bufferedInputStream =
new BufferedInputStream(new FileInputStream(direction+"\\"+s));
byte[] filesContent = new byte[bufferedInputStream.available()];
// byte b= Byte.parseByte("9");
byte[] separate = new byte[]{13,10};
int count= bufferedInputStream.read(filesContent);
/*
FileWriter fileWriter = new FileWriter(direction+"\\allFilesContent.txt",true);
fileWriter.write(filesContent,0,count);
fileWriter.*/
fileOutputStream = new FileOutputStream(direction+"\\allFilesContent.txt",true);
fileOutputStream.write(filesContent);
fileOutputStream.write(separate);
fileOutputStream.close();
}
}
}