Introdução a serialização de objetos

Neste artigo será descrito dois tipos de stream, o FileOutputStream e o FileInputStream para manipular objetos serializados.

Quando dizemos que um objeto é serializado, estamos afirmando que este objeto será transformado em bytes, e poderá ser armazenado em disco ou transmitido por um stream.

O stream é um objeto de transmissão de dados, onde um fluxo de dados serial é feito através de uma origem e de um destino. Neste artigo vamos descrever dois tipos de stream, o FileOutputStream e o FileInputStream para manipular objetos serializados.

O FileOutputStream é um fluxo de arquivo que permite a gravação em disco. Já o FileInputStream é justamente o contrário, permitindo a leitura de um arquivo em disco.

Como manipular objetos serializados

Para o nosso exemplo eu irei descrever a gravação / leitura de objetos serializados em um arquivo. Também serão utilizadas duas classes chamadas ObjectInputStream e ObjectOutputStream. Elas são responsáveis por inserir e recuperar objetos serializados do stream. Vamos ao exemplo:

Primeiro vamos desenvolver a classe chamada cliente, que será utilizada como Objeto serial de armazenamento:

import java.io.Serializable; //A classe deve implementar Serializable public class Cliente implements Serializable { private String nome; private char sexo; private String cpf; public Cliente(String nome, char sexo, String cpf) { super(); this.nome = nome; this.sexo = sexo; this.cpf = cpf; } public String getCpf() { return cpf; } public void setCpf(String cpf) { this.cpf = cpf; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public char getSexo() { return sexo; } public void setSexo(char sexo) { this.sexo = sexo; } public String toString() { return this.nome + " / " + "Sexo: " + this.sexo + "\n" + "CPF: " + this.cpf; } }

Abaixo segue a main que executará a gravação e a leitura de objetos em um arquivo.

package br.com.artigos.serial; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class ExemploStream { public static void main(String[] args) { // Cria o objeto serializado Cliente cliente = new Cliente("Glaucio Guerra", 'M', "0000000001"); try { //Gera o arquivo para armazenar o objeto FileOutputStream arquivoGrav = new FileOutputStream("/Users/glaucio/Desktop/saida.dat"); //Classe responsavel por inserir os objetos ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav); //Grava o objeto cliente no arquivo objGravar.writeObject(cliente); objGravar.flush(); objGravar.close(); arquivoGrav.flush(); arquivoGrav.close(); System.out.println("Objeto gravado com sucesso!"); } catch(Exception e) { e.printStackTrace(); } System.out.println("Recuperando objeto: "); try { //Carrega o arquivo FileInputStream arquivoLeitura = new FileInputStreamc: /saida.dat"); / / Classe responsavel por recuperar os objetos do arquivo ObjectInputStream objLeitura = new ObjectInputStream(arquivoLeitura); System.out.println(objLeitura.readObject()); objLeitura.close(); arquivoLeitura.close(); } catch(Exception e) { e.printStackTrace(); } } }

Saída:

Objeto gravado com sucesso! Recuperando objeto: Glaucio Guerra / Sexo: M CPF: 0000000001

Existem diversas aplicações que utilizam o recurso de serialização. O Hibernate, streams para JME, e qualquer outro tipo de aplicação que trabalhe com fluxo de I/O. Qualquer tipo de trabalho que envolver persistência ou tramitação de dados, a serialização é necessária.

Nosso próximo artigo será sobre a manipulação de arquivos XML com o JDOM.


Links Úteis

  • Segurança de web services em Java com controle de acesso: Neste curso vamos aprender a programar um mecanismo de autorização para controle de acesso às diferentes funcionalidades oferecidas por uma Web API RESTful, configurando para três tipos de usuário (cliente, funcionário e administrador) diferentes tipos de permissão.
  • Curso de Yarn: Neste curso aprenderemos o que é o Yarn: um gerenciador de dependências concorrente do NPM que promete ser mais rápido e eficiente que este.
  • Curso de Web services RESTful com Spring framework e JPA: Neste curso você vai aprender a criar sua primeira API REST baseada nos recursos do Spring Framework. Veremos como declarar corretamente os verbos HTTP em cada recurso consumido e também como definir, de forma apropriada, o status de cada resposta fornecida pela API.

Saiba mais sobre Java ;)

  • Guia de Java: Encontre aqui os Guias de estudo que vão ajudar você a aprofundar seu conhecimento na linguagem Java. Desde o básico ao mais avançado. Escolha o seu!
  • Cursos de Java Online: Torne-se um programador Java completo. Aqui você encontra cursos sobre as mais ferramentas e frameworks do universo Java. Aprenda a desenvolver sites e web services com JSF, Jersey, Hibernate e mais.
  • O que é Spring?: Neste curso você aprenderá o que é o Spring, framework Java criado com o objetivo de facilitar o desenvolvimento de aplicações e que explora, para isso, os conceitos de inversão de controle e injeção de dependências.
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados