Предполагаю, что валидатор проверяет разными каверзными способами. В том числе и на файлах больших размеров. У меня на маленьких файлах все работает, но проверка не прошла, потому что программа работала невежливо большое количество времени. Я думал и думаю, что размер массива равный половине файла слабое место.
Там ли собака зарыта?
package com.javarush.task.task18.task1808;
/*
Разделение файла
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName_1 = reader.readLine();
String fileName_2 = reader.readLine();
String fileName_3 = reader.readLine();
reader.close();
File file_1 = new File(fileName_1);
File file_2 = new File(fileName_2);
File file_3 = new File(fileName_3);
int fileSize = (int) file_1.length();
FileInputStream inputStream = new FileInputStream(fileName_1);
FileOutputStream fos_2 = new FileOutputStream(fileName_2);
FileOutputStream fos_3 = new FileOutputStream(fileName_3);
byte[] buffer = new byte[((fileSize + 1) / 2)];
int i = 0;
while (inputStream.available() > 0) {
int count = inputStream.read(buffer);
i += count;
if (i <= ((fileSize + 1) / 2)) {
fos_2.write(buffer);
} else {
fos_3.write(buffer, 0, count);
}
}
fos_2.close();
fos_3.close();
inputStream.close();
}
}