Программа работает! Все пишет как надо! Валидатор пусть ругается - это просто еще один из вариантов решения задачи. Кстати, можно ли как-то подогнать это решение под валидатор?
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        List<String> list = new ArrayList<>();
        String file = reader.readLine();
        while (!file.equals("end")) {
            list.add(file);
            file = reader.readLine();
        }
        reader.close();
        Collections.sort(list);
        FileOutputStream writer = new FileOutputStream("d:/test.txt.txt", true);
        List<FileInputStream> fileList = new ArrayList<>();
        FileInputStream reader1 = new FileInputStream(list.get(0));
        FileInputStream reader2 = new FileInputStream(list.get(1));
        FileInputStream reader3 = new FileInputStream(list.get(2));
        FileInputStream reader4 = new FileInputStream(list.get(3));
        fileList.add(reader1);
        fileList.add(reader2);
        fileList.add(reader3);
        fileList.add(reader4);

        for (FileInputStream x:fileList
             ) {
            byte[] buffer = new byte[x.available()];
            while (x.available() > 0) {
                int count = x.read(buffer);
            }
            writer.write(buffer);
            x.close();
        }
        writer.close();