Разделение файла
Считать с консоли три имени файла: файл1, файл2, файл3.
Разделить файл1 по следующему критерию:
Первую половину байт записать в файл2, вторую половину байт записать в файл3.
Если в файл1 количество байт нечетное, то файл2 должен содержать большую часть.
Закрыть потоки.
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
File file1 = new File(reader.readLine());
File file2= new File(reader.readLine());
File file3 = new File(reader.readLine());
FileInputStream fis1 = new FileInputStream(file1);
FileOutputStream fos2 = new FileOutputStream(file2);
FileOutputStream fos3 = new FileOutputStream(file3);
int b = fis1.available()/2;
//System.out.print(fis1.available() + " ");
while (fis1.available()>0){
int a = fis1.read();
if (fis1.available() >= b) fos2.write(a);
else fos3.write(a);
}
fos2.close();
fos3.close();
fis1.close();
reader.close();
/*FileInputStream fis2 = new FileInputStream(file2);
FileInputStream fis3 = new FileInputStream(file3);
System.out.println(fis2.available() + " " + fis3.available());
fis2.close();
fis3.close();*/
}
}
Пример вывода в консоль (если раскомментировать):
d:/File1.txt
d:/File2.txt
d:/File3.txt
1745 873 872
После валидатор жалуется на:
Первую половину байт из первого файла нужно записать во второй файл.
Вторую половину байт из первого файла нужно записать в третий файл.
И почему нельзя сразу написать new FileInputStream(reader.readLine()), а нужно делать через new File(reader.readLine())? В первый раз я пробовал так, но в итоге выдает ошибку:
Программа должна три раза считать имена файлов с консоли.