Как исправить ошибку исключения BufferOverflow при записи миллиардов строк? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь записать миллиарды строк в файл, но выдает ошибку «java.nio.BufferOverflowException». Я также думаю, что мое решение медленное, поскольку для написания 40 миллионов строк требуется 45 секунд. Ниже приведен код.

public static void main(String[] args) throws FileNotFoundException, IOException {

    byte[] buffer = "Help I am trapped in a fortune cookie factory\n".getBytes();
    int number_of_lines = 400000000;

    FileChannel rwChannel = new RandomAccessFile("textfile.txt", "rw").getChannel();
    ByteBuffer wrBuf = rwChannel.map(FileChannel.MapMode.READ_WRITE, 0, buffer.length * number_of_lines);
    for (int i = 0; i < number_of_lines; i++) {
        wrBuf.put(buffer);
    }
    rwChannel.close();
}

Как я могу сделать это быстрее, если это возможно, а также написать более 2 миллиардов строк?

...