Estoy trabajando en un producto de software con un visor de archivos de registro integrado. El problema es que es lento e inestable para archivos realmente grandes porque lee el archivo completo en la memoria cuando se ve un archivo de registro. Quiero escribir un nuevo visor de archivos de registro que resuelva este problema.¿Cómo escribo un visualizador de archivos de texto Java para grandes archivos de registro?
¿Cuáles son las mejores prácticas para escribir visores para archivos de texto grandes? ¿Cómo los editores como notepad ++ y VIM logran esto? Estaba pensando en usar un lector de secuencia de texto bidireccional con buffer junto con TableModel de Java. ¿Estoy pensando en las líneas correctas y esas implementaciones de flujo están disponibles para Java?
Editar: ¿Valdrá la pena ejecutar el archivo una vez para indexar las posiciones del inicio de cada línea de texto para que sepa dónde buscar? Probablemente necesite la cantidad de líneas, ¿entonces probablemente tendré que escanear el archivo al menos una vez?
Edit2: He agregado mi implementación a la siguiente respuesta. Coméntelo o edítelo para ayudarme/a llegar a una implementación de mejores prácticas o proporcione la suya propia.
Gracias, yo también vio RandomAccessFile además de FileChannel que puede resultar útil –