Разделение файла Считать с консоли три имени файла: файл1, файл2, файл3. Разделить файл1 по следующему критерию: Первую половину байт записать в файл2, вторую половину байт записать в файл3. Если в файл1 количество байт нечетное, то файл2 должен содержать большую часть. Закрыть потоки.
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        File file1 = new File(reader.readLine());
        File file2= new File(reader.readLine());
        File file3 = new File(reader.readLine());
        FileInputStream fis1 = new FileInputStream(file1);
        FileOutputStream fos2 = new FileOutputStream(file2);
        FileOutputStream fos3 = new FileOutputStream(file3);
        int b = fis1.available()/2;
        //System.out.print(fis1.available() + " ");
        while (fis1.available()>0){
            int a = fis1.read();
            if (fis1.available() >= b) fos2.write(a);
            else fos3.write(a);
        }
        fos2.close();
        fos3.close();
        fis1.close();
        reader.close();
        /*FileInputStream fis2 = new FileInputStream(file2);
        FileInputStream fis3 = new FileInputStream(file3);
        System.out.println(fis2.available() + " " + fis3.available());
        fis2.close();
        fis3.close();*/
    }
}
Пример вывода в консоль (если раскомментировать): d:/File1.txt d:/File2.txt d:/File3.txt 1745 873 872 После валидатор жалуется на: Первую половину байт из первого файла нужно записать во второй файл. Вторую половину байт из первого файла нужно записать в третий файл. И почему нельзя сразу написать new FileInputStream(reader.readLine()), а нужно делать через new File(reader.readLine())? В первый раз я пробовал так, но в итоге выдает ошибку: Программа должна три раза считать имена файлов с консоли.