Просьба подсказать, почему валидатор не принимает задачу, это его мем или реально что-то не так?
Тестировал всё работает корректно, сначала по стандарту получаем в стринг имена файлов, после записываем байты из первого в массив, далее я делю длину массива на кол-во файлов, в нашем случае 2 и получаю остаток, а после прибавляю результаты друг к другу. То есть при 10/2 будет 5 и остаток ноль, а при 11/2 = 5 и остаток 1, в итоге большую часть таким образом записываю во второй файл, а остальное в третий. При этом, как и нужно для валидации использую FileInputStreeam / FileOutputStream и закрываю их. В чём же дело?
package com.javarush.task.task18.task1808;
import java.io.*;
import java.util.ArrayList;
/*
Разделение файла
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<Integer> byteList = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileNameOne = reader.readLine();
String fileNameTwo = reader.readLine();
String fileNameThree = reader.readLine();
reader.close();
FileInputStream inputStream = new FileInputStream(fileNameOne);
while (inputStream.available() > 0) {
byteList.add(inputStream.read());
}
inputStream.close();
int fileSizeTwo = byteList.size()/2;
int fileSizeMod = byteList.size() % 2;
int fileSizeFinal = fileSizeTwo + fileSizeMod;
FileOutputStream outputStream = new FileOutputStream(fileNameTwo);
for (int i = 0; i < fileSizeFinal; i++) {
outputStream.write(byteList.get(i));
}
outputStream.close();
FileOutputStream outputStream2 = new FileOutputStream(fileNameThree);
for (int i = fileSizeFinal; i < byteList.size() + 1; i++) {
fileSizeFinal++;
if (fileSizeFinal == byteList.size()) {
return;
}
outputStream2.write(byteList.get(fileSizeFinal));
}
outputStream2.close();
}
}