разбить очень большой текстовый файл по максимуму строк

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

Я не хочу загружать весь файл в память, поэтому я попробовал это с BufferedReader.

Текстовые файлы меньшего размера должны быть ограничены количеством текстовых строк.

Решение работает, однако я хочу спросить, знает ли кто-нибудь решение с лучшей производительностью, используя usion java 8 (может быть, lamdas с stream () - api?) И nio2:

public void splitTextFiles(Path bigFile, int maxRows) throws IOException{

        int i = 1;
        try(BufferedReader reader = Files.newBufferedReader(bigFile)){
            String line = null;
            int lineNum = 1;

            Path splitFile = Paths.get(i + "split.txt");
            BufferedWriter writer = Files.newBufferedWriter(splitFile, StandardOpenOption.CREATE);

            while ((line = reader.readLine()) != null) {

                if(lineNum > maxRows){
                    writer.close();
                    lineNum = 1;
                    i++;
                    splitFile = Paths.get(i + "split.txt");
                    writer = Files.newBufferedWriter(splitFile, StandardOpenOption.CREATE);
                }

                writer.append(line);
                writer.newLine();
                lineNum++;
            }

            writer.close();
        }
}

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

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