??
package com.javarush.task.task18.task1808;
/*
Разделение файла
Считать с консоли три имени файла: файл1, файл2, файл3.
Разделить файл1 по следующему критерию:
Первую половину байт записать в файл2, вторую половину байт записать в файл3.
Если в файл1 количество байт нечетное, то файл2 должен содержать большую часть.
Закрыть потоки.
Требования:
1. Программа должна три раза считать имена файлов с консоли.
2. Для чтения из файла используй поток FileInputStream, для записи в файлы - FileOutputStream
3. Первую половину байт из первого файла нужно записать во второй файл.
4. Вторую половину байт из первого файла нужно записать в третий файл.
5. Потоки FileInputStream и FileOutputStream должны быть закрыты.
*/
import java.io.*;
public class Solution {
public static void main(String[] args) {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try {
String file1=reader.readLine();
String file2=reader.readLine();
String file3=reader.readLine();
reader.close();
FileInputStream file1Reader=new FileInputStream(file1);
FileOutputStream fileOut1=new FileOutputStream(file2);
FileOutputStream fileOut2=new FileOutputStream(file3);
while (file1Reader.available()>0){
byte[]buffer=new byte[file1Reader.available()];//Здесь массив принимает длину равную длине входящего потока. То есть мы сразу читаем весь файл,
int fileSize=file1Reader.read(buffer);
int medium=fileSize-(fileSize/2);
fileOut1.write(buffer, 0, medium);
fileOut2.write(buffer,medium,fileSize);
}
file1Reader.close();
fileOut1.close();
fileOut2.close();
}
catch (IOException e){
System.out.println("Ошибка!");
}
}
}