Olá pessoal.
Estou com uma pequena duvida ao ler um arquivo, tenho um arquivo que é rezoavelmente grande porém preciso fazer uma validação na primeira e ultima linha deste arquivo. Uma das formas é criar um FileReader e fazer um while até a ultima linha, como o arquivo é grande eu não gostaria de percorrer todo ele, gostaria de saber se tem alguma forma de ir direto para a ultima linha.
Alguém poderia me ajudar com este problema.
Como ir diireto para a ultima linha de um arquivo.
Tem um projeto que usei a commons-httpclient para continuar um reenvio de arquivo, la tem o metodo skip() que da pra ler um arquivo pulando um tanto desejado em kb mas não por linha, mas acredito que da pra você tentar fazer algum tipo de calculo pra tentar achar um ponto de partida ideal para sua leitura usando esse skip…
Você pode usar um RandomAccessFile em vez de um FileReader e começar a ler o arquivo de trás para frente, até achar um caracter "\n" que é uma quebra de linha. Essa seria a sua última linha.
Obviamente se o arquivo terminar com "\n", então você desconsidera esse último "\n" e procura o penúltimo "\n".
Dá um pouco de trabalho, mas funciona direitinho.
Não recomendaria fazer isso se seu arquivo for menor que 1MB; acho que é mais fácil usar um FileReader mesmo.