Serializable - serializando objetos

Para o Java serializar objetos basta implementar a interface Serializable.

Diagrama

Implementação da classe

public class Dog implements Serializable {

 

 private String nome;

  

 public void makeSound() {

 }

  

 public String getNome() {

         return this.nome;

 }

  

 public void setNome(String aNome) {

          this.nome = aNome;

 

}

 

Serializando um objeto Dog

/* seralizando um objeto Dog */

Dog d = new Dog();

d.setNome("Rex");

System.out.println("Nome do cão 1: " + d.getNome());

 

try {

 FileOutputStream fs = new FileOutputStream("c:/caes.dat");

 ObjectOutputStream os = new ObjectOutputStream(fs);

 os.writeObject(d);

 os.close();

catch (Exception ex) {

 ex.printStackTrace();

}

 

/* desseralizando */

Dog d2 = new Dog();

try {

 FileInputStream fi = new FileInputStream("c:/caes.dat");

 ObjectInputStream oi = new ObjectInputStream(fi);

 d2 = (Dog) oi.readObject();

 oi.close();

catch (Exception ex) {

 ex.printStackTrace();

}

System.out.println("Nome do cão 2: " + d2.getNome());

 

Transient

Use transient para impedir que determinada propriedade seja serializada

class Demo implements Serializable {

    String nome;

    transient String senha; // esta não será salva

}

 

Observações

Não esqueça de importar: java.io.Serializable;

Ver sobre serialVersionUID para manter compatibilidade com versões mais novas do objeto

É necessário que todas as classes da árvore da herança a serem serializadas devem implementar Serializable