Я пытаюсь записать миллиарды строк в файл, но выдает ошибку «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 миллиардов строк?