Всем привет! У меня ни один пункт, кроме первого не проходит валидацию. Подскажите пожалуйста, что делаю не так.
1. Программа должна считывать имена файлов с консоли, пока не будет введено слово "end".

2. Создай поток для записи в файл без суффикса [.partN] в папке, где находятся все считанные файлы.

3. В новый файл перепиши все байты из файлов-частей *.partN.

4. Чтение и запись должны происходить с использованием буфера.

5. Созданные для файлов потоки должны быть закрыты.
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String filename;
        ArrayList<String> list = new ArrayList<String>();
        int data;

        while (!(filename = reader.readLine()).equals("end")) {
            list.add(filename);
        }

        Collections.sort(list);

        BufferedWriter bw = null;
        FileWriter fw = null;
        fw = new FileWriter(filename.substring(0,filename.lastIndexOf(".")));
        bw = new BufferedWriter(fw);

        for (int i = 0; i < list.size(); i++) {
            FileReader in = new FileReader(list.get(i));
            BufferedReader br = new BufferedReader(in);
            String line;
            while ((line = br.readLine()) != null) {
                bw.write(line);
            }
            in.close();
            br.close();
        }
        fw.close();
        bw.close();
        }
    }