Esse erro é porque a sua String é menor que 2 em alguma linha do arquivo escolhido.
Veja o que tem na sua variável line antes de fazer o substring. caso o tamanho dela for menor que 2, já não precisa fazer o "valido = true"
 
Outra coisa: Veja a descrição do método substring:
 
Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.
 
Ou seja, substring(1,2) te retornará uma string de tamanho 1. Acho que não é o que você espera. Pelo que entendi, você quer substring(0,2).
 
Abraços,
Alex
----- Original Message -----
To: Lista
Sent: Friday, March 30, 2001 3:00 PM
Subject: [java-list] por que????????

Pessoal, estou tentando ler o conteúdo de um arquivo que o usuário escolhe. Após o usuário escolhê-lo, devemos validá-lo, sendo que os dois primeiros caracteres da primeira linha do arquivo escolhido devem ser "10" e os da última linha devem ser "90". Ocorre um erro quando eu tendo fazer um substring da linha corrente e "pegar" este valor para saber se á 10 ou 90... o erro é StringIndexOutOfBoundsException: String index out of range: 2...
O que está errado, alguém pode me dizer???
 
  try {
   FileReader fr = new FileReader(NomeArquivoEscolhido);  
   BufferedReader br = new BufferedReader(fr);
   String line = "";
   while((line=br.readLine())!=null) {
    tipo  = line.substring(1,2);
    if (tipo.equals("10")) {valido = true;}
    if (tipo.equals("90")) {valido = true;}
   }
   br.close();
  } catch(FileNotFoundException e){}
    catch(IOException e){}
thank's
[]s
Karen

Responder a