тестирую код на файлах, если в качестве размера массива указан размер fileReader.available(), то валидатор пропускает 3 условие (4 не проходит), но последний символ из файла теряется и не записывается. Если указываю размер fileReader.available() + 1, то запись корректно работает, но валидатор не пропускает ни 3, ни 4 условие.
package com.javarush.task.task18.task1808;
/*
Разделение файла
*/
import java.io.*;
// C:\Users\Елена\Documents\strings.txt
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fileReader = new FileInputStream(reader.readLine());
FileOutputStream fileWriter1 = new FileOutputStream(reader.readLine());
FileOutputStream fileWriter2 = new FileOutputStream(reader.readLine());
byte[] data = new byte[fileReader.available()];
while (fileReader.available() > 0) {
fileReader.read(data);
}
int length = data.length;
//System.out.println(length);
int half = length / 2;
if ((length % 2) == 0) {
fileWriter1.write(data, 0, half);
fileWriter2.write(data, (half - 1), half);
//System.out.println("Четное");
} else {
fileWriter1.write(data, 0, (half + 1));
fileWriter2.write(data, half, half);
//System.out.println("Нечетное " + (half + 1) + " " + half);
}
reader.close();
fileReader.close();
fileWriter1.close();
fileWriter2.close();
}
}