Lendo arquivo

5 respostas
H

Tenho um .txt chamado aaaa com o seguinte conteudo

Nome1;1
Nome2;2
Nome3;3
Nome4;4
Nome5;5
public void loadTextFile()  
{  
   String filePath = "aaaa.txt";  
    
    try {  
         
        BufferedReader in = new BufferedReader(new FileReader(filePath));  
        String str;  
        while ((str = in.readLine()) != null) {  
            String data[] = str.split(";");  
            System.out.println("Nome: " + data[0] + " Numero:" + data[1]);  
        }  
         
        in.close();  
    } catch (Exception e) {  
        e.printStackTrace();  
        System.out.println("Erro ao ler arquivo de texto " + e.toString());  
    }  
}

Mas recebo "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1"

Alguem consegue achar algum erro ai?

5 Respostas

klebson_lou

voce esta esquecendo de fechar o conchete na linha 11

System.out.println("Nome: " + data[0] + " Numero:" + data[1]);
H

klebson lou:
voce esta esquecendo de fechar o conchete na linha 11

System.out.println("Nome: " + data[0] + " Numero:" + data[1]);

Ah sim, no meu código eu havia fechado o colchete. Na hora de postar aqui que eu apaguei sem querer…

Alguem consegue ver algum erro alem disso?

klebson_lou

eu executei o codigo e nao deu nenhum erro.
a saida foi

Nome: Nome1 Numero:1
Nome: Nome2 Numero:2
Nome: Nome3 Numero:3
Nome: Nome4 Numero:4
Nome: Nome5 Numero:5

H

Estranho, não sei pq aqui ta lançando essa exception…

E

Se o arquivo que você estiver lendo tiver uma linha vazia, então o split vai retornar um array de um elemento apenas, com uma string vazia.

Portanto, vai dar o tal problema.

É melhor sempre testar se a dimensão do array retornado por split é exatamente 2 em vez de sair supondo que as linhas são todas iguaizinhas e bonitinhas.

Criado 29 de junho de 2012
Ultima resposta 29 de jun. de 2012
Respostas 5
Participantes 3