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.
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:
[code]
try {
File arquivoLeitura = new File(“url do seu arquivo”);
// pega o tamanho
long tamanhoArquivo = arquivoLeitura .length();
FileInputStream fs = new FileInputStream(arquivoLeitura);
DataInputStream in = new DataInputStream(fs);
LineNumberReader lineRead = new LineNumberReader(new InputStreamReader(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!!!”);