----- Original Message -----
Sent: Wednesday, July 24, 2002 7:28
PM
Subject: Re: [java-list] O que é
Serialization
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