estou lendo os dados de um arquivo txt, atribuindo cada dado a um atributo especifico de um objeto e cada linha a um objeto, esta funcionando normalmente, estou conseguindo adicionar e fazer tudo que preciso, porem como estou usando try catch consigo capturar a excepção e continuar rodando o programa, mas não sei se isso me gerará erros futuros.
Tenho essa excepção capturada :
excecao: java.lang.ArrayIndexOutOfBoundsException: 4
então aqui vai o método para importação
public void importaCliente(){
File arquivo = new File("C:\\Users\\itach\\Desktop\\CadastroCliente.txt");
try {
//Scanner, nesse exemplo vai fazer a leitura de um arquivo
// texto denominado exercicio.txt
Scanner scanner = new Scanner(arquivo);
// A leitura do arquivo será por linha
while(scanner.hasNextLine()) {
String s[];
s =(scanner.nextLine().split(";")); // atribuo fim de uma string através do ; que esta também a cada atributo do meu txt
DaoCliente dao = new DaoCliente();
if(s[4].equalsIgnoreCase("J")){ // se a posicao 4(tipo) for J,o objeto instanciado é Pessoa Juridica
PessoaJuridica obj = new PessoaJuridica();
int codigo=Integer.parseInt(s[0]);
obj.setCodigo(codigo);
obj.setNome(s[1]);
obj.setEndereco(s[2]);
obj.setTelefone(s[3]);
obj.setTipo(s[4]);
obj.setCnpj(s[5]);
int ie=Integer.parseInt(s[6]);
obj.setIe(ie);
dao.salvarCliente(obj);
}
else if(s[4].equalsIgnoreCase("F")) {
PessoaFisica obj = new PessoaFisica();
int codigo=Integer.parseInt(s[0]);
obj.setCodigo(codigo);
obj.setNome(s[1]);
obj.setEndereco(s[2]);
obj.setTelefone(s[3]);
obj.setTipo(s[4]);
obj.setCpf(s[5]);
dao.salvarCliente(obj);
}
System.out.println(Dados.listaClientes);
}
}
catch(Exception e){
System.out.println("excecao"+e);
}
}
o metodo de salvar no arraylist é esse
public void salvarCliente(Cliente obj){
if(Dados.listaClientes.contains(obj)!= true)
{
Dados.listaClientes.add(obj);
}
else {
System.out.println("impossivel adicionar");
}
}
só queria entender de onde vem esse estouro de array que esta acontecendo