Должно быть так: из первого файла копирует в temp, потом перезаписывает данные в первом файле данными из второго, далее с append дописывает данные из temp в первый файл.
А по факту: заполняет первый файл данными из второго. В чём причина?
package com.javarush.task.task18.task1819;
/*
Объединение файлов
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileOne = "C:\\javaTest\\1.txt";
String fileTwo = "C:\\javaTest\\2.txt";
FileInputStream fileInputStreamFileOne = new FileInputStream(fileOne);
FileOutputStream fileOutputStreamFileOne = new FileOutputStream(fileOne);
FileOutputStream fileOutputStreamFileOneAppendTrue = new FileOutputStream(fileOne, true);
FileInputStream fileInputStreamFileTwo = new FileInputStream(fileTwo);
FileOutputStream fileOutputStreamTemp = new FileOutputStream(new File("C:\\javaTest\\temp.txt"));
FileInputStream fileInputStreamTemp = new FileInputStream("C:\\javaTest\\temp.txt");
while (fileInputStreamFileOne.available() > 0) {
fileOutputStreamTemp.write(fileInputStreamFileOne.read());
}
while (fileInputStreamFileTwo.available() > 0) {
fileOutputStreamFileOne.write(fileInputStreamFileTwo.read());
}
while (fileInputStreamTemp.available() > 0) {
fileOutputStreamFileOneAppendTrue.write(fileInputStreamTemp.read());
}
fileInputStreamFileOne.close();
fileInputStreamFileTwo.close();
fileInputStreamTemp.close();
fileOutputStreamFileOne.close();
fileOutputStreamTemp.close();
}
}