Не самое лаконичное решение, но все же. Я тестировал и смотрел как работает код - все работает в соответствии с условиями... Или я условия не правильно понял?
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 = "/Users/artemtimonin/IdeaProjects/JavaRushTasks/"+reader.readLine();
String fileName2 = "/Users/artemtimonin/IdeaProjects/JavaRushTasks/"+reader.readLine();
String fileName3 = "/Users/artemtimonin/IdeaProjects/JavaRushTasks/"+reader.readLine();
int bit;
try (FileInputStream fileInputStream = new FileInputStream(fileName); FileOutputStream file2 = new FileOutputStream(fileName2); FileOutputStream file3 = new FileOutputStream(fileName3)){
int half = fileInputStream.available()/2;
if(fileInputStream.available()%2==0) {
while (fileInputStream.available()>0){
if (fileInputStream.available()>half){
bit = fileInputStream.read();
file2.write(bit);
}
else {
bit = fileInputStream.read();
file3.write(bit);
}
}
}
else {
while (fileInputStream.available()>0) {
int withRemains = half - fileInputStream.available()%2;
if (fileInputStream.available()>withRemains){
bit = fileInputStream.read();
file2.write(bit);
}
else {
bit = fileInputStream.read();
file3.write(bit);
}
}
}
}
}
}
Во второй файл записалось 13 символов
А в третий 12