Объединять огромные файлы без загрузки всего файла в память?

Я хочу объединить огромные файлы, содержащие строки, в один файл и попытался использовать nio2. Я не хочу загружать весь файл в память, поэтому я попробовал это с BufferedReader:

public void mergeFiles(filesToBeMerged) throws IOException{

Path mergedFile = Paths.get("mergedFile");
Files.createFile(mergedFile);

List<Path> _filesToBeMerged = filesToBeMerged;

try (BufferedWriter writer = Files.newBufferedWriter(mergedFile,StandardOpenOption.APPEND)) {
        for (Path file : _filesToBeMerged) {
// this does not work as write()-method does not accept a BufferedReader
            writer.append(Files.newBufferedReader(file));
        }
    } catch (IOException e) {
        System.err.println(e);
    }

}

Я попробовал это с этим, это работает, однако, формат строк (например, новые строки и т. Д. Не копируются в объединенный файл):

...
try (BufferedWriter writer = Files.newBufferedWriter(mergedFile,StandardOpenOption.APPEND)) {
        for (Path file : _filesToBeMerged) {
//              writer.write(Files.newBufferedReader(file));
            String line = null;


BufferedReader reader = Files.newBufferedReader(file);
            while ((line = reader.readLine()) != null) {
                    writer.append(line);
                    writer.append(System.lineSeparator());
             }
reader.close();
        }
    } catch (IOException e) {
        System.err.println(e);
    }
...

Как я могу объединить огромные файлы с NIO2 без загрузки всего файла в память?

Ответы на вопрос(3)

Ваш ответ на вопрос