Понял, что прошлое решение было неправильным, сделал по-новой.
Проходит на моём компиляторе при любых условиях:
1) Пустой файл
2) Нечётный файл размером в 1 байт, 3 байта, 5 байт и так далее
3) Чётный файл размером в 2, 4 байта и так далее
И самое главное, всё работает и строго по условиям.
Какого валидатор ругается по четвёртому пункту?
package com.javarush.task.task18.task1808;
/*
Разделение файла
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws FileNotFoundException, IOException {
int count = 0;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String string1 = reader.readLine();
FileInputStream fileReader = new FileInputStream(string1);
String string2 = reader.readLine();
String string3 = reader.readLine();
FileOutputStream firstWriter = new FileOutputStream(string2);
FileOutputStream secondWriter = new FileOutputStream(string3);
byte[] buffer = new byte[10000000];
while (fileReader.available() >0) {
count = fileReader.read(buffer);
}
int middle = count/2;
if (count%2 != 0) middle +=1;
firstWriter.write(buffer, 0, middle);
secondWriter.write(buffer, middle, middle);
reader.close();
fileReader.close();
firstWriter.close();
secondWriter.close();
}
}