Ola pessoal… estou a fazer um programa q grava um ArrayList de objetos da classe Cliente em um arquivo de objetos… no entanto, quando eu gravo o cliente q digitei… ao recuperar, descubro q o Cliente foi salvo com todos os campos nulos… o q poderia estar acontecendo??
eis o metodo q estou a usar para executar o trabalho:
public static void editarArquivo(boolean eEditavel, Cliente novoCliente){
ArrayList<Cliente> leitura = null;
int conta = 0;
int indiceCliente = 0;
Cliente teste;
File f = new File("c:\cliente.dat");
try {
if(GerenciadorArquivos.existeArquivo("c:\cliente.dat")==true){
if(f.length()>0){
leitura = new ArrayList<Cliente>();
leitura = ((ArrayList<Cliente>)GerenciadorArquivos.abrirArquivo("c:\cliente.dat"));
JOptionPane.showMessageDialog(null, leitura.get(0).getNome());
}
if(leitura!=null){
Iterator i = leitura.iterator();
while(i.hasNext()){
JOptionPane.showMessageDialog(null, "ENTROU NO LAÇO");
i.next();
teste = (Cliente)leitura.get(indiceCliente);
JOptionPane.showMessageDialog(null, teste.toString());
if(novoCliente.equals(teste)){
JOptionPane.showMessageDialog(null, "comparou");
conta++;
break;
}
indiceCliente++;
}
if (conta>0){
//constatou q o cara ja existe.
if(eEditavel){
leitura.remove(indiceCliente);
leitura.add(novoCliente);
}else{
JOptionPane.showMessageDialog(null, "Cliente ja esta cadastrado!!!");
}
//não consta no cadastro
}else{
JOptionPane.showMessageDialog(null, "antes da lista "+novoCliente.getNome());
leitura.add(novoCliente);
System.out.println("ae"+leitura.get(1).getNome());
}
}else{
leitura = new ArrayList<Cliente>();
leitura.add(novoCliente);
System.out.println("se for nulo nome:"+leitura.get(0).getNome());
}
System.out.println("gravando");
GerenciadorArquivos.salvarArquivo(leitura,"c:\cliente.dat");
}
}catch(FileNotFoundException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "arquivo nao encontrado");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Desde já agradeço.
