Логика была такова: читаю второй файл и последовательно добавляю в лист, потом первый добавляю в лист, записываю лист.
В итоге при append false лист считывает только со второго файла, а строк 24-26 как будто не существует. Если бы с append false одни данные заменялись другими, оно понятно, а почему в лист не читает, неясно. Почему оно работает так?
при append true лист содержит данные с двух файлов, но добавляет к данным, которые уже содержатся в файле. т.е. файл 1 + файл 2 + файл 1, что понятно. Но как в итоге решить задачу через ArrayList?
package com.javarush.task.task18.task1819;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Объединение файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String firstFile = reader.readLine();
String secondFile = reader.readLine();
reader.close();
try(BufferedReader firstReader = new BufferedReader(new FileReader(firstFile));
BufferedReader secondReader = new BufferedReader(new FileReader(secondFile));
BufferedWriter firstWriter = new BufferedWriter(new FileWriter(firstFile, true))){
List<String> list = new ArrayList<>();
while (secondReader.ready()) {
list.add(secondReader.readLine());
}
while (firstReader.ready()) {
list.add(firstReader.readLine());
}
for (String str: list) {
firstWriter.write(str);
}
}
}
}