Leitura de arquivo TXT Grande

Pessoal,

na sexta-feira me deparei com um problema que eu nunca tinha visto. Tenho um arquivo txt com quase 3 GB, aproximadamente 1.7 mil linhas e 170 colunas.

Eu sempre usei o BufferReader para ler qualquer tipo de arquivo.

A leitura do arquivo acontece até a linha 850mil e depois finaliza a execução.

O código para leitura:

public void lerArquivo() throws FileNotFoundException, IOException{ //abre o arquivo para leitura FileInputStream stream = new FileInputStream("arquivo.txt"); InputStreamReader streamReader = new InputStreamReader(stream); BufferedReader reader = new BufferedReader(streamReader); String linha = null; Integer cLinha = 0; while (reader.readLine() !=null){ linha = reader.readLine(); System.out.println(cLinha); cLinha++; } }

lembro que uma só existe uma linha == null que está só no final do arquivo. Detalhe também tentei colocar uma variavel com a quantidade total no while, mas a partir da metade do arquivo
o código é bem simples, mas chega em um ponto que finaliza o arquivo.

Alguém tem alguma ideia do que pode estar acontecendo e também de como solucionar?

[]´s

Nilson

Você está dando dois .readLine() e contando só um…

Tenta fazer assim:

public void lerArquivo() throws FileNotFoundException, IOException{  
     //abre o arquivo para leitura  
     FileInputStream stream = new FileInputStream("arquivo.txt");  
     InputStreamReader streamReader = new InputStreamReader(stream);  
     BufferedReader reader = new BufferedReader(streamReader);  
     String linha = null;  
     Integer cLinha = 0;  
     while ((linha = reader.readLine()) !=null){  
         System.out.println(cLinha);  
         cLinha++;  
     }  
}  

Acho que é ± isso…