Gideoni, vou tentar explicar de forma simples.
 
 
Digamos que você precisa passar um objeto do tipo "Endereço" por um socket, ou então escreve lo em um arquivo.
 
A forma convencional de se fazer isso seria escrever os campos da classe Endereço um a um, seguindo alguma formatação
inventada por você.
Por exemplo, para a classe:
 
class Endereco {
    String rua;
    String complemento;
    int numero;
}
 
Você poderia escrever no arquivo (ou enviar pelo socket, ou similar) o nome da rua, pular linha, escrever o complemento, pular linha, e depois escrever o número.
Outra maneira ainda seria escrever os campos precedidos dos tamanhos deles. Ou qualquer outra formatação que vier na sua cabeça.
 
Este não é um método trivial e quanto mais complexa for a sua classe, mais trabalho você terá para escrever e ler as informações dela nessa forma.
 
A serialização facilita todo esse processo.
Com a serialização, você pode abstrair esses detalhes e apenas pedir para a stream "escrever" ou "ler" o objeto serializável.
 
Você torna uma classe serializável quando implementa a interface Serializable, que não tem nenhum método. Ou seja, basta acrescentar implement Serializable.
 
class Endereco implement Serializable {
    String rua;
    String complemento;
    int numero;
}
 
agora se eu quisesse escrever os dados de um objeto da classe Endereco, eu só precisaria usar uma stream especial (ObjectOutputStream) e usar o método writeObject. Mais ou menos assim:
 
ObjectOutputStream out;
Endereco addr;
 
... (inicialização de out e de addr)
 
out.writeObject(addr);
 
Mais simples, não? Para ler este objeto você faria isto:
 
ObjectInputStream in;
Endereco addr;
 
... (inicialização de in)
 
addr = (Endereco) in.readObject();
 
Como você poder ver, é bem simples.
 
 
[]´s
Celso Jr
 
 
 
----- Original Message -----
Sent: Wednesday, July 24, 2002 10:48 AM
Subject: [java-list] O que é Serialization

Olá amigos,
 
        Não pude compreender este conceito do Java ainda, alguém pode dar uma luz ou um link para a luz.
 
        Grato,
 
Gideoni Hudson  ": ' )
PrevCaixa
Tel.: 31 3226-8707

Responder a