У меня сейчас крыша поедет
Сначала я обернул все в try с ресурсами чтобы все потоки автоматически закрывались и засчитывало 3й пункт но не 4й, хотя все должно работать согласно условиям.
Решил удалить этот try и вручную по закрывать все потоки и итоге теперь и 3е требование отображено как невыполнено + валидатор еще и отображает инфу что я перепутал куда заливать большую часть байт.
Потоки же как не закрывались так и не закрываются, судя по результатам.
Помогите пожалуйста понять где я ошибаюсь
package com.javarush.task.task18.task1808;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
/*
Разделение файла
*/
public class Solution {
public static void main(String[] args) throws IOException {
String fileName2 = "";
String fileName3 = "";
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream file1 = new FileInputStream(bufferedReader.readLine());
FileInputStream file2 = new FileInputStream((fileName2 = bufferedReader.readLine()));
FileInputStream file3 = new FileInputStream((fileName3 = bufferedReader.readLine()));
FileOutputStream file2write = new FileOutputStream(fileName2);
FileOutputStream file3write = new FileOutputStream(fileName3);
ArrayList<Integer> bytes = new ArrayList<>();
while (file1.available() > 0) {
bytes.add(file1.read());
}
if (bytes.size() % 2 == 0) {
for (int i = 0; i <= (bytes.size() / 2 - 1); i++) {
file2write.write(bytes.get(i));
}
for (int i = (bytes.size() / 2 - 1); i < bytes.size(); i++) {
file3write.write(bytes.get(i));
}
}
else if (bytes.size() % 2 != 0) {
for (int i = 0; i <= (bytes.size() / 2); i++) {
file2write.write(bytes.get(i));
}
for (int i = (bytes.size() / 2 + 1); i < bytes.size(); i++) {
file3write.write(bytes.get(i));
}
}
bufferedReader.close();
file1.close();
file2.close();
file3.close();
file2write.close();
file3write.close();
}
}