Не могу понять, в чем проблема. Работает, как указано в задании. В FileOutputStream пыталась указывать имя файла напрямую, все равно не проходит. В этом варианте имя файла для записи вводится в консоль вместе со всеми остальными.
package com.javarush.task.task18.task1825;
/*
Собираем файл
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
while (true) {
String s = reader.readLine();
if (s.equals("end")) {
break;
}
list.add(s);
}
reader.close();
Collections.sort(list);
FileOutputStream fos = new FileOutputStream(list.get(0));
for (int i = 1; i < list.size(); i++) {
FileInputStream fis = new FileInputStream(list.get(i));
byte[] buffer = new byte[fis.available()];
while (fis.available() > 0)
{
int count = fis.read(buffer);
fos.write(buffer, 0, count);
}
fis.close();
}
fos.close();
}
}