ads

sexta-feira, 22 de março de 2013

Serialização de objetos

 O processo de conversão de um objeto a uma sequência de bytes é chamado de serialização de obejeto.  A passagem de uma sequência de bytes para um objeto utilizável também recebe o mesmo nome.

 Considerem o código abaixo



import java.io.Serializable


public class Cliente implements Serializable {

     private int codigo;

     private String nome;
  

     public Cliente (int codigo, String nome){


            this.codigo=codigo;

            this.codigo=nome;
     }

     public int getCodigo(){

            return codigo;

    }


     public String getNome(){

            return nome;

    }


    public String toString(){

   
          return new String("Código = "+this.codigo
                      +" - Nome do Cliente = "+this.nome);

   }


Esta é uma classe simples com construtor, um getter e um setter e o override do método toString que retorna uma String com os valores das variáveis. Além disso, a classe implementa a interface Serializable.

A classe abaixo (Teste1) mostra como poderíamos serializar e também recuperar os objetos serializados.


  import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;

 public class Teste1 {

     public static void main(String args []){
        Cliente c1 = new Cliente(1,"José");
        Cliente c2 = new Cliente(2,"Maria");

        System.out.println(c1.toString() );
            System.out.println(c2.toString());

        ObjectOutputStream out;
        ObjectInputStream in;

        try{
            out = new ObjectOutputStream(new FileOutputStream(
                     System.getProperty("user.dir")+
                         File.separator+"Clientes.bin"));
            out.writeObject(c1);
            out.writeObject(c2);
            out.flush();
            out.close();
        }
        catch(Exception e){
            e.printStackTrace();
        }

        Cliente c3;
        Cliente c4;

        try {
            in = new ObjectInputStream(new FileInputStream(
                     System.getProperty("user.dir")+
                         File.separator+"Clientes.bin"));
            c3 = (Cliente) in.readObject();
            c4 = (Cliente) in.readObject();

            in.close();

            System.out.println(c3.toString());
            System.out.println(c4.toString());
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
 }
   


Nenhum comentário: