Quantas linhas existem em um arquivo

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 ??

Valew galera

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!!!”);

} catch (IOException e) {
//TODO: Tratar exceção
}
[/code] no link http://www.guj.com.br/posts/list/18796.java

Ora, LineNumberReader é um BufferedReader que conta as linhas enquanto está lendo. Pode usar sem medo.