всем доброго времени суток, изложил то, как по-моему все должно работать в комментариях в коде, прошу помочь и указать хотя бы на область с ошибкой, либо сказать мне что давай по новой миша, все ***ня я делаю не так :(
package com.javarush.task.task18.task1819;
/*
Объединение файлов
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
//инициализация
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String file1 = br.readLine();
String file2 = br.readLine();
FileInputStream fis1 = new FileInputStream(file1);
FileInputStream fis2 = new FileInputStream(file2);
//создаем буфер для байтов из первого файла, переносим туда считанный файл и закрываем поток чтения
byte[] buffer1 = new byte[fis1.available()];
for (int i = 0; i < fis1.available(); i++) {
buffer1[i] = (byte) fis1.read();
}
fis1.close();
//создаем буфер для байтов из второго файла, переносим туда считанный файл и закрываем поток чтения
byte[] buffer2 = new byte[fis2.available()];
for (int i = 0; i < fis2.available(); i++){
buffer2[i] = (byte) fis2.read();
}
fis2.close();
//создаем финальный буффер размера суммы длин двух старых буфферов;
byte[] fbuffer = new byte[buffer1.length + buffer2.length];
//записываем в финальный буффер по очереди первый и второй
for (int i = 0; i < buffer2.length-1; i++){
fbuffer[i] = buffer2[i];
}
//насчет этого цикла не уверен на 100% что правильно
for (int i = buffer2.length, j = 0; i < (fbuffer.length - buffer2.length-1) && j < buffer1.length-1; i++, j++){
fbuffer[i] = buffer1[j];
}
//создаем поток записи и пишем данные в файл через него из финального буффера, закрываем поток
FileOutputStream fos = new FileOutputStream(file1);
for (int i = 0; i < fbuffer.length-1; i++){
fos.write(fbuffer[i]);
}
fos.close();
//ничего не работает, плачем и идем подметать улицу
}
}
//C:\Users\alexk\Desktop\jout.txt
//C:\Users\alexk\Desktop\jotest.txt
просьба освободить вагоныусловие уже не выполняется.