Всем привет, подскажите что не так в моём коде? На практике это рабочий код, решения на мой взгляд было очевидным, минут 10-15 на написание... Дальше сел думать, ниже написал какую то абракадабру наоборот, но естественно результат тот же.
Не пойму, дан файл, размер 9 байт, значит файл 2 должен быть 5 байт, а файл 3 - 4 байта? Так все и есть, проверял на текстовых файлах, ошибки не нашёл.
package com.javarush.task.task18.task1808;
import java.io.*;
/*
Разделение файла
*/
public class Solution {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String pathFile1, pathFile2, pathFile3;
try ( FileInputStream file1 = new FileInputStream((pathFile1 = reader.readLine()));
FileOutputStream file2 = new FileOutputStream((pathFile2 = reader.readLine()));
FileOutputStream file3 = new FileOutputStream((pathFile3 = reader.readLine()))) {
long length1 = new File(pathFile1).length();
long lengthMid = length1%2 ==0 ? length1/2 : length1/2+1;
for (long i = 0; i < length1; i++) {
int b = file1.read();
if (i<lengthMid) {
file2.write(b);
} else {
file3.write(b);
}
}
/*while (file1.available()>0) {
int b = file1.read();
if (file1.available()+1>length1/2) {
file2.write(b);
} else {
file3.write(b);
}
}*/
} catch (IOException ex) {
ex.printStackTrace();
}
}
}