Мне нужно прочитать большой текстовый файл, скажем, 25 ГБ, и мне нужно обработать этот файл в течение 15-20 минут. Этот файл будет иметь несколько разделов верхнего и нижнего колонтитула.
Я попытался CSplit разделить этот файл на основе заголовка, но разделение его на несколько файлов на основе заголовка занимает от 24 до 25 минут, что совершенно неприемлемо.
Я пробовал последовательное чтение и запись с помощью BufferReader
и BufferWiter
вместе с FileReader
и FileWriter
. Это занимает более 27 мин. Опять же, это неприемлемо.
Я попробовал другой подход, например, получить начальный индекс каждого заголовка, а затем запустить несколько потоков для чтения файла из определенного места с помощью RandomAccessFile
. Но тут не повезло.
Как я могу выполнить свое требование?
Возможный дубликат: