Ler última linha do arquivo

Pessoal,

Alguém conhece algum modo de ler a última linha de um arquivo sem ter que ler o arquivo todo para isso? Ou seja, retornar diretamente a última linha?!

Obrigado!

Você pode usar um RandomAccessFile, e ler o arquivo “de trás para frente”. Quando encontrar um LF ("\n" = byte 0x0A), ou o início do arquivo, quer dizer que você já conseguiu ler todos os bytes da última linha.

Pode até ser meio bobo, mas como eu jogo o “ponteiro” do RandomAccessFile pro final do arquivo?

RandomAccessFile tem o método length() e o método seek(). Só lembrar-se que a primeira posição do arquivo é 0, portanto provavelmente você terá de ir para a posição length() - 1.