Компилятор не принимает с теми условиями. При этом запустить на компе для проверки не получается, он тупо выбрасывает ошибку, жалуясь на end в 25 строке и работает, только если изменить его на 0.
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));
FileInputStream inputStream= new FileInputStream(reader.readLine());
FileOutputStream outputStream2 = new FileOutputStream(reader.readLine());
FileOutputStream outputStream3 = new FileOutputStream(reader.readLine());
byte[] buff = new byte[inputStream.available()];
int count = inputStream.read(buff);
int end = count/2;
if(count % 2 != 0){
end++;
}
outputStream2.write(buff, 0, end);
outputStream3.write(buff, end, count);
inputStream.close();
outputStream2.close();
outputStream3.close();
}
}
/*
Считать с консоли три имени файла: файл1, файл2, файл3.
Разделить файл1 по следующему критерию:
Первую половину байт записать в файл2, вторую половину байт записать в файл3.
Если в файл1 количество байт нечетное, то файл2 должен содержать большую часть.
Закрыть потоки.
Требования:
1. Программа должна три раза считать имена файлов с консоли.
2. Для чтения из файла используй поток FileInputStream, для записи в файлы - FileOutputStream
3. Первую половину байт из первого файла нужно записать во второй файл.
4. Вторую половину байт из первого файла нужно записать в третий файл.
5. Потоки FileInputStream и FileOutputStream должны быть закрыты.
*/