Problema ao salvar ArrayList em arquivo

2 respostas
C

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.

2 Respostas

dionat4n

O método GerenciadorArquivos.abrirArquivo(…); funciona corretamente?
Coloca o código aí, melhor identado de preferência… :smiley:

lucasap2005

Posta a sua classe de cliente ae

Criado 10 de junho de 2008
Ultima resposta 10 de jun. de 2008
Respostas 2
Participantes 3