Я работаю над программным продуктом с интегрированным средством просмотра файлов журнала. Проблема в том, что он медленный и нестабильный для действительно больших файлов, потому что он читает весь файл в памяти при просмотре файла журнала. Я хочу написать новый просмотрщик файлов журналов, который решает эту проблему.
Каковы наилучшие методы написания зрителей для больших текстовых файлов? Как это делают редакторы, такие как блокнот ++ и VIM? Я думал об использовании буферизованного двунаправленного текстового потока с Java TableModel. Я думаю о правильных строках и являются ли такие потоковые реализации доступными для Java?
Изменить: будет ли целесообразно запускать файл один раз, чтобы индексировать позиции начала каждой строки текста, чтобы знать, где искать? Мне, вероятно, понадобится количество строк, так что, вероятно, придется просканировать файл хотя бы один раз?
Edit2: Я добавил свою реализацию в ответ ниже. Пожалуйста, прокомментируйте это или отредактируйте его, чтобы помочь мне/нам прийти к более эффективной практике или иным образом предоставить ваши собственные.