В последней перед этой задачей лекции упоминались классы BufferedInputStream и BufferedOutputStream В итоге пытался решить с их помощью( ну а как иначе, не буду же я по 1 байт читать из файлов),ничего не получилось, в итоге решил так:
package com.javarush.task.task18.task1819;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) {
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String fileName1 = reader.readLine();
            String fileName2 = reader.readLine();
            reader.close();

            FileInputStream fileInputStream1 = new FileInputStream(fileName1);
            byte[] bytes1 = new byte[fileInputStream1.available()];
            fileInputStream1.read(bytes1);
            fileInputStream1.close();

            FileInputStream fileInputStream2 = new FileInputStream(fileName2);
            byte[] bytes2 = new byte[fileInputStream2.available()];
            fileInputStream2.read(bytes2);
            fileInputStream2.close();

            FileOutputStream fileOutputStream = new FileOutputStream(fileName1);
            fileOutputStream.write(bytes2);
            fileOutputStream.write(bytes1);
            fileOutputStream.close();
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
}
И вот возникли вопросы, как работают строки 18 и 23 ?! Если я одной строчкой считываю весь файл в массив, то какое тогда преимущество всех этих буферов ?