Leitura de arquivo TXT Grande

1 resposta
N

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

1 Resposta

insonix

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…

Criado 6 de dezembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 1
Participantes 2