Baixe o app para aproveitar ainda mais
Prévia do material em texto
Serialização Prof: Ekler Paulino de Mattos ekler.mattos@gmail.com CPCX/UFMS Arquivos em Java/Serialização • Quando recuperamos dados em arquivos, não sabemos qual é o tipo do dado armazenado. Problema para quem irá recuperá-lo, identificar o tipo de dado de cada objeto. Arquivos em Java/Serialização • Definição: • Um objeto serializado é um objeto representado como uma sequência de bytes que inclui os dados do objeto, bem como as informações sobre o tipo do objeto e os tipos de dados armazenados no objeto. • Depois que um objeto é serializado: Ele pode ser gravado em um arquivo e/ou trafegado através da rede. Arquivos em Java/Serialização • Definição: • Desserialização: Transformação de um objeto serializado gravado em um arquivo ou lido a partir da rede, em um objeto recriado na memória. • O Java fornece mecanismos que armazenam e recuperam objetos inteiros de um arquivo, podendo assim recuperar o estado do objeto, como o seu tipo e valor do dado. Tais objetos são chamados objetos serializados, ou serializáveis. • java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream, and Serializable. Serialização • Trabalhando com ObjectOutputStream e ObjectInputStream • A mágica da serialização acontece com dois métodos: – ObjectOutputStream.writeObject(): Utilizado para serializar objetos e gravá-los em um fluxo; – ObjectInputStream.readObject(): Segundo para ler o fluxo e desserializar objetos; – São consideradas classes alto-nível do pacote: java.io; – Significa que serão ”empacotados” em classes de baixo nível, como por exemplo, java.io.FileOutputStream and java.io.FileInputStream; Serialização/Exemplo1 Serialização/Exemplo1 Serialização/Exemplo1 Serialização/Exemplo1 Serialização (Regras) • Seja uma classe A serializável possui uma relação de dependência com a classe B. Serialização (Regras) • No processo de serialização, a classe B deve também ser uma classe serializável, ou seja, implementar a interface serializable; • Serialização/ Exemplo 2 • Serialização/ Exemplo 2 • Serialização/ Exemplo 2 • Serialização/ Exemplo 2 • Serialização/ Exemplo 2 • Serialização/Exemplo 3 • O que aconteceria se a classe Collar não pudesse ser serializada??? • Objetos Transientes/Exemplo 3 • O que aconteceria se a classe Collar não pudesse ser serializada??? • Solução: • Qualquer variável de instância que não deve ser serializada deve ser declarada como tansiente. Para indicar que não é Serializable deve ser ignorada durante o processo de serialização. • Por padrão todas as variáveis de tipo primitivo são serializáveis; • Sintaxe: – transient private Collar theCollar; EC 1 – Exercício computacional 1 • Utilizando as classes de manipulação de objetos serializáveis, crie um programa Java que atenda aos seguintes requisitos: – Realize o cadastro de disciplinas e alunos; – Realize a listagem das disciplinas; – Realize a listagem dos alunos; – Cadastrar 5 disciplinas em um arquivo; EC 1 – Exercício computacional 1
Compartilhar