Problema des_serialização

2 respostas
j.silvestre

olá pessoal…

estou com uma duvida se alguém puder me ajudar.

a duvida esta no metodo public void desserializa_agenda(), como faço para desserializar o meu ArrayList ?

import java.util.ArrayList;
import javax.swing.JOptionPane;
import java.io.*;//  para fazer a serialização //
public class agenda implements Serializable{ // serialização da classe agenda

private String Nome;
private String Endereco;
private String Telefone;
private String Email;
ArrayList<agenda> Registro  = new ArrayList<agenda>();

  
public void  set_nome(String n){
Nome = n;
}
public void set_endereco(String n){
Endereco = n;
}
public void set_Telefone(String n)
{
  Telefone = n;
}
public void set_Email(String n)
{
 Email = n;
}
public String get_nome(){
return Nome;
}
public String get_Endereco(){
return Endereco;
}
public String get_Telefone(){
return Telefone;
}
public String get_Email(){
return Email;
}
public void add_array_list()
{
  agenda  S = new agenda();
   S.Nome = Nome;
   S.Endereco = Endereco;
   S.Telefone = Telefone;
   S.Email = Email;
   Registro.add(S);
}
 
 public void imprime_arraylist_atual(int n){
 //for(agenda c : Registro){
  // System.out.println(c.Nome+"\n"+c.Endereco +"\n"+c.Telefone +"\n"+c.Email);
    agenda a = Registro.get(n); //Obtém a primeira agenda do arraylist
    Nome = a.Nome;
    Endereco = a.Endereco;
    Telefone = a.Telefone;
    Email = a.Email;
   }

 public void serializa_agenda(){

  for(agenda ser : Registro){ // aqui serializo to o meu ArrayList... 
 try{
 FileOutputStream fs = new FileOutputStream("ser_agenda.ser");
 ObjectOutputStream os = new ObjectOutputStream(fs);
 os.writeObject(ser);
  os.close();
 }catch(Exception ex){
 System.out.println("erro");
 }
 }
 }
 
 public void desserializa_agenda(){
     
 int n;
 for(agenda ser : Registro){
 try{
     ObjectInputStream is = new ObjectInputStream(new FileInputStream("ser_agenda.ser") );
     Registro.get(n) = (agenda) is.readObject();  // aqui esta errado o compilador não aceita//
    n++;
 }catch(Exception ex){
  System.out.println("erro descerialização");
 }
 }
}
}

sds

j.silvestre

2 Respostas

j.silvestre

olá

refiz o método.

public void desserializa_agenda(){
     

 for(agenda ser : Registro){
 try{
     ObjectInputStream is = new ObjectInputStream(new FileInputStream("ser_agenda.ser") );
     ser = (agenda) is.readObject();
     Registro.add(ser);
 }catch(Exception ex){
  System.out.println("erro desserialização");
 }
 }

compila normal , mas quando chamo o método ocorre um erro , no iterator

for(agenda ser : Registro){

parece que a serialização não esta salvando os indices do ArrayList Registro. bom acho que é isso.

sds

j.silvestre

j.silvestre

depois de uma fuçada no fórum.

ficou assim:

public void serializa_agenda(){

 try{
 FileOutputStream fs = new FileOutputStream("ser_agenda.ser");
 ObjectOutputStream os = new ObjectOutputStream(fs);
 os.writeObject(Registro);
  os.close();
 }catch(Exception ex){
 System.out.println("erro");
 }
 }


 public void desserializa_agenda(){
     


 try{
     ObjectInputStream is = new ObjectInputStream(new FileInputStream("ser_agenda.ser") );
     Registro = (ArrayList<agenda>) is.readObject();
    
 }catch(Exception ex){
  System.out.println("erro desserialização");
 }

sds

j.silvestre

Criado 24 de julho de 2010
Ultima resposta 25 de jul. de 2010
Respostas 2
Participantes 1