Помогите разобраться, как именно применят flush(). Что я делаю не так? Верна ли вообще логика кода?
package com.javarush.task.task18.task1808;
import java.io.*;
/*
Разделение файла
*/
public class Solution {
public static void main(String[] args) {
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in))){
FileInputStream inputStream1 = new FileInputStream(bufferedReader.readLine());
FileOutputStream outputStream2 = new FileOutputStream(bufferedReader.readLine());
FileOutputStream outputStream3 = new FileOutputStream(bufferedReader.readLine());
int size = inputStream1.available();
if (inputStream1.available() > 0) {
if (inputStream1.available() > size/2-1 && size %2 != 0) {
byte[] buffer1 = new byte[size/2+1];
int count = inputStream1.read(buffer1);
outputStream2.write(buffer1, 0, count);
} else if (inputStream1.available() > size/2 && size %2 == 0) {
byte[] buffer1 = new byte[size/2];
int count = inputStream1.read(buffer1);
outputStream2.write(buffer1, 0, count);
}
outputStream3.flush();
}
inputStream1.close();
outputStream3.close();
outputStream3.close();
} catch (Exception e) {
throw new RuntimeException();
}
}
}