Ler a ultima linha de um arquivo txt

4 respostas
E

gostaria de saber como faco para ler apenas a ultima linha de um arquivo, por exemplo txt. Usei o InputStreamReader e ele me retorna todo o conteudo do arquivo e eu preciso ler somente a ultima linha.

Muito obrigado!

4 Respostas

Jair_Rillo_Junior

você nao pode percorrer o arquivo todo e quando chegar na ultima linha trabalhar com ela? Eu não sei se existe um jeito de dar um “jump” para a último linha assim de cara

ciczan

Não sei de nenhum método pra fazer isso direto.

Quando precisei fazer isso uma vez, explorei algumas cacterísticas do arquivo que estava lendo.

Como era um arquivo de dados, cada linha tinha 64 chars. E sempre o arquivo teria mais de 1000 linhas daí pra agilizar fiz:

BufferedReader reader = new BufferedReader(new FileReader(
                new File("arquivo")));

        String linha = reader.readLine();
        String linhaAnterior = linha;
        
       reader.skip(1000*64);//pula 1000 linhas

        //Vai ateh a ultima
        while (linha!=null) {
            linhaAnterior = linha;
            linha = reader.readLine();
        }

        //Utiliza a útima linha...
E

Valeu galera… juntei a dica dos dois e consegui resolver o problema!

Abracos

cassio

Não seria mais barato pular para o eof e ir “andando para trás” até encontrar o line feed ou line feed + carriage return?
Neste ponto estariamos no fim da penúltima linha, sendo necessário passarmos para a próxima e então ler.

Criado 21 de novembro de 2006
Ultima resposta 21 de nov. de 2006
Respostas 4
Participantes 4