Entradas e Saídas em Java/Exemplo 04: Serialização de Objectos

From Wiki**3

< Entradas e Saídas em Java
Revision as of 19:39, 7 November 2018 by Root (talk | contribs)

Serialização de Objectos

Serialização de tipos primitivos e de objectos: a interface Serializable. Elementos não serializáveis: a palavra chave transient.

Exemplo: Zorg e Zog

class Alienígena implements Serializable {
  String _nome;
  transient String _segredo = "7";
  public Alienígena(String n) { _nome = n; _segredo = _nome + _nome.length(); }
  public void voing() { System.out.println(_nome + (_segredo != null ? _segredo : "")); }
}
public class Serialização {
  public static void main(String[] args) throws IOException, ClassNotFoundException {

    Alienígena a1 = new Alienígena("Zorg"), a2 = new Alienígena("Zog");
    a1.voing();  //output: ZorgZorg4
    a2.voing();  //output: ZogZog3

    ObjectOutputStream out =
      new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("raw.dat")));
    out.writeObject(a1); out.writeObject(a2);
    out.close();

    ObjectInputStream in =
      new ObjectInputStream(new BufferedInputStream(new FileInputStream("raw.dat")));
    Alienígena r1 = (Alienígena)in.readObject();  // pode lançar “StreamCorruptedException”
    Alienígena r2 = (Alienígena)in.readObject();
    r1.voing();  //output: Zorg
    r2.voing();  //output: Zog

  }
}