Tenho uma aplicação que lê um arquivo texto e faz uma série de processamentos. Preciso descobrir quantas linhas tem o arquivo, existe alguma forma mais “elegante” sem ter que percorrer o arquivo inteiro e incrementando um contador no braço ??
A resposta simples é “não”. Uma forma alternativa, se é que você quer algo mais rápido, é você ler o arquivo em formato binário e contar os caracteres 0x10 que existem nesse arquivo. Mas aí você teria de ler o arquivo só para contar o número de linhas, fechá-lo, e depois lê-lo novamente, o que é muito mais lento que ir processando o arquivo e contando as linhas.
Guitar_Men
thingol:
A resposta simples é "não". Uma forma alternativa, se é que você quer algo mais rápido, é você ler o arquivo em formato binário e contar os caracteres 0x10 que existem nesse arquivo. Mas aí você teria de ler o arquivo só para contar o número de linhas, fechá-lo, e depois lê-lo novamente, o que é muito mais lento que ir processando o arquivo e contando as linhas.
Poutz mas ai me parece muito xunxo... eu achei uma outra forma aqui no fórum do guj mesmo e queria uma opinião sobre ela:
try{FilearquivoLeitura=newFile("url do seu arquivo");// pega o tamanho longtamanhoArquivo=arquivoLeitura.length();FileInputStreamfs=newFileInputStream(arquivoLeitura);DataInputStreamin=newDataInputStream(fs);LineNumberReaderlineRead=newLineNumberReader(newInputStreamReader(in));lineRead.skip(tamanhoArquivo);// conta o numero de linhas do arquivo, começa com zero, por isso adiciona 1 numLinhas=lineRead.getLineNumber()+1;System.out.println("O ARQUIVO CONTEM "+numLinhas+" LINHAS!!!!!!!");}catch(IOExceptione){//TODO: Tratar exceção }