Не проходит валидацию третий пункт. Подскажите, может я натупил с алгоритмом.
Реверс файла
Считать с консоли 2 имени файла: файл1, файл2.
Записать в файл2 все байты из файл1, но в обратном порядке.
Закрыть потоки.


Требования:
1. Программа должна два раза считать имена файлов с консоли.
2. Для чтения из файла используй поток FileInputStream, для записи в файл - FileOutputStream
3. Во второй файл нужно записать все байты из первого в обратном порядке.
4. Потоки FileInputStream и FileOutputStream должны быть закрыты.
import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Solution {
    public static void main(String[] args) throws IOException {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        List<Integer> list1 = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();

        //ЧИТАЮ ИМЕНА ФАЙЛОВ
        String n1 = reader.readLine();
        String n2 = reader.readLine();

        FileInputStream inputStream = new FileInputStream(n1);

        //ЧИТАЮ ФАЙЛ В ЛИСТ
        while (inputStream.available() > 0) {
            list1.add(inputStream.read());
        }

        //КОПИРУЮ ЛИСТ1 В ЛИСТ2 УЖЕ В РЕВЕРСЕ
        for (int i = list1.size(); i > 0; i--) {
            list2.add(list1.get(i));
        }

        FileOutputStream outputStream = new FileOutputStream(n2);

        //ПОСТРОЧНО ПИШУ В ФАЙЛ ИЗ ЛИСТ2
        for (int a = 0; a < list2.size(); a++) {
            outputStream.write(list2.get(a));
        }

        inputStream.close();
        outputStream.close();
    }
}