Трябва произволно да получа достъп до конкретни записи в текстов (ASCII) файл и след това да чета от там, докато бъде намерена конкретна „стоп последователност“ (разделител на запис). Файлът съдържа многоредови записи и всеки запис е разделен с разделител. Всеки запис също така отнема различно количество редове! Това е общоизвестен файлов формат в конкретната област на експертиза и не може да бъде променян.
Искам да индексирам файла, за да мога бързо да премина към искан запис.
При подобни въпроси като
Как да получите достъп до низ във файл по позиция в Java
и връзките в него, отговорът винаги препраща към метода seek()
на различни класове като RandomAccessFile
. Знам за това!
Въпросът, който имам, е как да получа отместването, необходимо за търсене! (индексиране на файла)
BufferedReader
няма метод getFilePointer()
или друг, за да получи текущото отместване на байта от началото на файла. RandomAccessFile
има метод readLine()
, но неговата производителност е повече от ужасна. За моя случай изобщо не може да се използва.
Ще трябва да чета файла ред по ред и всеки път, когато бъде намерен разделителят на запис, трябва да получа отместването на байта. Как мога да постигна това?