Serialização em Java

[ad#texto]

Muitos desenvolvedores tem dúvidas sobre o que é e para que serve a serialização em Java, basicamente serialização tem o objetivo de converter de forma intuitiva e simples a instancia de uma classe em um bytes ordenados e a fazer o processo inverso.

Falando em implementação veremos um exemplo, onde em primeiro momento iremos criar uma classe de exemplo para em seguida realizar a sua serialização e por último fazer o processo inverso.

Veja a classe de exemplo:

import java.io.Serializable;

public class Exemplo1 implements Serializable{
private int numero;
private String nome;

public Exemplo1(int numero, String nome) {
 this.numero = numero;
 this.nome = nome;
}

public String getNome() {
 return nome;
}

public int getNumero() {
 return numero;
}

public String toString() {
 return new String("Numero = "+this.numero+" | Nome = "+this.nome);
}
}

Como podem ver é uma classe simples, onde existe um construtor que define os valores para os dois atributos e após os métodos GET, a única diferença que podemos notar é a implementação da Serializable. Note que no final foi realizado um override do método toString() para formatar a saída da classe com os valores dos atributos.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Teste1 {
 public static void main(String args []){
  Exemplo1 e1 = new Exemplo1(001,"White");
  Exemplo1 e2 = new Exemplo1(002,"Magician");

  System.out.println(e1.toString());
  System.out.println(e2.toString());

  ObjectOutputStream out;
  ObjectInputStream in;

  try{
   out = new ObjectOutputStream(new FileOutputStream(System.getProperty("user.dir")+File.separator+"Exemplo1.bin"));
   out.writeObject(e1);
   out.writeObject(e2);
   out.flush();
   out.close();
  }catch(Exception e){
   e.printStackTrace();
  }

  Exemplo1 e3;
  Exemplo1 e4;

  try {
   in = new ObjectInputStream(new FileInputStream(System.getProperty("user.dir")+File.separator+"Exemplo1.bin"));
   e3 = (Exemplo1) in.readObject();
   e4 = (Exemplo1) in.readObject();

   in.close();

   System.out.println(e3.toString());
   System.out.println(e4.toString());
  }catch (Exception e){
   e.printStackTrace();
  }
 }
}

A classe acima é bem simples e a princípio utiliza a primeira classe (Exemplo1.java) e utiliza a serialização enviando os bytes para o arquivo Exemplo1.bin. Na segunda parte da classe acima é lido o arquivo Exemplo1.bin e realizado o processo inverso, “jogando” os dados do arquivo para o objeto.

Caso tudo transcorra bem a saída do console seria:

Numero = 1 | Nome = White

Numero = 2 | Nome = Magician

Numero = 1 | Nome = White

Numero = 2 | Nome = Magician

A fonte deste post foi o WMagician, lá você irá encontrar mais sobre serialização e outros assuntos em Java, por exemplo, é possível utilizar a serialização em ambientes client-server utilizando sockets.

Tags:
Petter Rafael
Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 1.083 outros assinantes

Busca

junho 2023
D S T Q Q S S
 123
45678910
11121314151617
18192021222324
252627282930  

Categorias