Orientação a Objetos - Gil Eduardo de Andrade

Propaganda
Orientação a Objetos
Manipulando Arquivos Binários
Serialização de objetos
Gil Eduardo de Andrade
Criando arquivos binários
A classe “File” e “FileOutputStream”
(import java.io.File)
(import java.io.FileOutputStream)
• Assim como em arquivos texto, o pacote
“java.io.*;” também é utilizado para criação e
manipulação de arquivos binários;
• As classes “File” e “FileOutputStream”
permitem a criação desse tipo de arquivo;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Criando arquivos binários
As classes “FileOutputStream” e “FileInputStream”
(import java.io.FileOutputStream)
(import java.io.FileInputStream)
• Permitem que um fluxo de dados seja criado
entre a aplicação e o arquivo binário manipulado
pela mesma;
• Ao instanciarmos um objeto da classe
“FileOutputStream” ou “FileInputStream”
passamos aos seus construtores um objeto da
classe File;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Criando arquivos binários
Instanciando um objeto “FileOutputStream”
• Ao instanciarmos um objeto da classe “File” e
posteriormente um objeto da classe
“FileOutputStream” criamos um arquivo
binário:
– File arqBin = new File(“/tmp/arquivo.gea”);
– FileOutputStream fos = new FileOutputStream()
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Criando arquivos binários
Criando um arquivo binário
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Serialização de Objetos
Armazenando objeto em arquivo binário
• Serialização, de forma resumida, é o ato de
salvarmos em um arquivo binário, o estado
interno de um objeto;
• Permite salvar em arquivo o estado de um
aplicativo para ser recuperado
posteriormente, como por exemplo: o estado
do tabuleiro de um jogo de xadrez;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Serialização de Objetos
As Classes “ObjectOutputStream”
• Para que seja possível transferir um objeto em
memória para um arquivo binário, é
necessário serializá-lo em bytes para depois
armazená-lo em arquivo;
• A classe que permite efetuar esse processo de
serialização é a “ObjectOutputStream”, através
do seu método “writeObject()”;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Serialização de Objetos
Serializando um objeto
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Serialização de Objetos
A Classe “Serializable”
(java.io.Serializable)
• A classe da qual pretendemos serializar um
objeto, armazenando-o num arquivo, deve
obrigatoriamente, implementar a interface
“Serializable”;
• Isso é possível através da utilização da palavra
reservada “implements” após o nome da classe a
ser serializada, dentro do arquivo que a
implementa;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Classe que implementa “Serializable”
Exemplo de uma classe “Serializable”
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Des-Serialização de Objetos
A Classe “FileInputStream”
• Ao instanciarmos um objeto da classe “File” e
posteriormente um objeto da classe
“FileInputStream” criamos um fluxo de dados
para que seja possível obter os dados
armazenados em um arquivo binário;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Des-Serialização de Objetos
A Classe “ObjectInputStream”
• Para que seja possível obter um objeto
armazenado num arquivo binário, é
necessário efetuar o processo inverso ao de
serialização (des-serialização);
• A classe que permite efetuar esse processo de
des-serialização é a “ObjectInputStream”,
através do seu método “readObject()”;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Des-Serialização de Objetos
Des-Serializando um objeto
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Orientação a Objetos
Tratamento de Exceções em Java
try-catch / trows
Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exceptions em Java:
• Uma das qualidades da orientação objetos é a
possibilidade de tratar possíveis erros de
execução, denominados exceptions
(exceções);
• Exceções podem ser divididas em:
– Checked Exceptions;
– Unchecked Exceptions;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Checked Exception / Unchecked Exception:
• Checked Exceptions acontecem quando o
tratamento da exceção é obrigatório por parte
do desenvolvedor;
• Utiliza-se o método try-catch quando o
desenvolvedor sabe como tratar a exceção, ou
trows, caso contrário;
• Unchecked Exceptions acontecem não há
obrigatoriedade no tratamento da exceção;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Método “try”:
• Quando um método de uma determinada
classe é passível de erro, então é possível
utilizarmos o método de tentativa try;
• Todo o bloco de código dentro do try será
executado até que uma exceção (erro)
aconteça;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exemplos de “try”:
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Método “catch”:
• Quando uma exceção é lançada, pode ser
capturada e tratada através do método catch;
• No momento em que a exceção ocorre, o
fluxo de código se desloca de dentro do bloco
try para dentro do bloco catch;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Método “catch”:
• Um bloco de código para um try pode conter
vários blocos catch dependendo do número
de exceções que podem ser lançadas;
• O método catch consegue obter o erro
gerado através da instância de classes que
representam a exceção;
– Ex:. Exception, IOException;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exemplo de “try-catch”:
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exemplo “trows”:
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exceções “exceptions”:
• As exceções são representadas por instâncias
(objetos) das classes que as representam, isso
permite sua manipulação;
• Existem métodos que são padrões dentro dessas
classes, dos quais podemos citar:
– toString(): converte os dados da exceção para
visualização;
– getCause(): retorna a causa da exceção, ou null se a
causa for desconhecida;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exceções “exceptions”:
– printStackTrace(): mostra no console o histórico e
as linhas de todos os erros encontrados – muito
utilizado para depuração (debugging) de código;
– getMessage: retorna uma String com a exceção –
utilizado para apresentar, de forma elegante, o
erro ocorrido ao usuário;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exemplo de “exceptions”:
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Finally:
• A função do finally é executar um trecho de
código, ainda que uma exceção tenha
ocorrido;
• Utilizado quando é necessário liberar algum
recurso anteriormente alocado, como por
exemplo, uma conexão aberta com banco de
dados;
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Tratamento de Exceções em Java
Exemplo de “finally”:
Aula 10: Manipulando arquivos binários – Gil Eduardo de Andrade
Download