Alguem me ajuda com este erro

4 respostas
A
Este codigo era uma idéia para mim contar quantas split existia em um arquivo agora ele da um erro abaixo o codigo
public static void main(String[] args) throws FileNotFoundException, IOException {
        File files = new File("C:\\ClassAlgodao");
        for (File file : files.listFiles()) {
         System.out.println(file);    
         BufferedReader ler = new BufferedReader(new FileReader(file));
         String txt = null;
         txt = ler.readLine();
         String[] spli = txt.split("###");
         int num=0;
         while(!"".equals(spli[num])){
         num++;
         System.out.println(num);
         }
         ler.close();
         
                 }
    }

ERRO:

run:
C:\ClassAlgodao\11.txt
1
2
3
4
5
6
7
8
9
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
10
11
12
at lendosplitvariostamanhos.Lendosplitvariostamanhos.main(Lendosplitvariostamanhos.java:31)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)

O q devo fazer para resolver

4 Respostas

E
while(!"".equals(spli[num])){  
         num++;  
         System.out.println(num);  
         }

Digamos que você não tenha nenhum campo vazio.
O que vai ocorrer no último campo - digamos que haja 12 campos, ou seja, eles vão de 0 até 11?

ssh

indexOutofBounds, é estouro!

por exemplo, o vetor tem 10 posições e você tenta manipular a 11°. erro.

att

jaboot

Não é mais fácil dar um length no array?

A

Prontinho vlw pela dica utilizei o length ele contou 12 porem sempre eu tenho 11 então sempre tiro um do valor dele e fica tudo blzinha obrigado pela ajuda

File files = new File("C:\\ClassAlgodao"); for (File file : files.listFiles()) { System.out.println(file); BufferedReader ler = new BufferedReader(new FileReader(file)); String txt = null; txt = ler.readLine(); String[] spli = txt.split("###"); int valor=spli.length; int num=valor-1; for(int i=0;i<=num;i++){ System.out.println(spli[i]); } } }

Criado 19 de dezembro de 2011
Ultima resposta 19 de dez. de 2011
Respostas 4
Participantes 4