Lea un archivo línea por línea en orden inverso
Tengo una aplicación Java ee donde uso un servlet para imprimir un archivo de registro creado con log4j. Al leer los archivos de registro, generalmente está buscando la última línea de registro y, por lo tanto, el servlet sería mucho más útil si imprimiera el archivo de registro en orden inverso. Mi código actual es:
response.setContentType("text");
PrintWriter out = response.getWriter();
try {
FileReader logReader = new FileReader("logfile.log");
try {
BufferedReader buffer = new BufferedReader(logReader);
for (String line = buffer.readLine(); line != null; line = buffer.readLine()) {
out.println(line);
}
} finally {
logReader.close();
}
} finally {
out.close();
}
Las implementaciones que encontré en Internet implican usar un StringBuffer y cargar todo el archivo antes de imprimir, ¿no hay una forma de código ligero de buscar hasta el final del archivo y leer el contenido hasta el comienzo del archivo?