(Created page with "== Serialização de Objectos == Serialização de tipos primitivos e de objectos: a interface Serializable. Elementos não serializáveis: a palavra chave transient. === Exem...") |
|||
Line 5: | Line 5: | ||
=== Exemplo: Zorg e Zog === | === Exemplo: Zorg e Zog === | ||
− | < | + | <source lang="java"> |
class Alienígena implements Serializable { | class Alienígena implements Serializable { | ||
String _nome; | String _nome; | ||
Line 12: | Line 12: | ||
public void voing() { System.out.println(_nome + (_segredo != null ? _segredo : "")); } | public void voing() { System.out.println(_nome + (_segredo != null ? _segredo : "")); } | ||
} | } | ||
− | </ | + | </source> |
− | < | + | <source lang="java"> |
public class Serialização { | public class Serialização { | ||
public static void main(String[] args) throws IOException, ClassNotFoundException { | public static void main(String[] args) throws IOException, ClassNotFoundException { | ||
Line 36: | Line 36: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
[[category:Ensino]] | [[category:Ensino]] |
Serialização de tipos primitivos e de objectos: a interface Serializable. Elementos não serializáveis: a palavra chave transient.
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
}
}