Leia um arquivo linha por linha na ordem inversa
Tenho um aplicativo java ee em que uso um servlet para imprimir um arquivo de log criado com o log4j. Ao ler arquivos de log, você geralmente procura a última linha de log e, portanto, o servlet seria muito mais útil se imprimisse o arquivo de log na ordem inversa. Meu código atual é:
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();
}
As implementações que eu encontrei na internet envolvem o uso de um StringBuffer e o carregamento de todo o arquivo antes da impressão. Não existe uma maneira simples de procurar o final do arquivo e ler o conteúdo até o início do arquiv