Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

I/O Carlos Bazilio Depto de Ciência e Tecnologia
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Tratamento de Exceções
Persistência de objetos em arquivo texto usando Java
Streams Java.
Excepções e Streams em Java
PROGRAMAÇÃO ESTRUTURADA II
Streams –input e output
Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
1 JAVA I/O (Entrada e Saída em JAVA) Prof. Alexandre Monteiro Recife.
Estrutura de Controle em JAVA
Guardando dados no Android. Persistência de informações Android fornece três tipos de persistência: Preferências compartilhadas (propriedades) Arquivos.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
Programação em Java Tratamento de Exceções Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel.
Exemplos de Solução PL Método Gráfico 04 de março de 2011.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
Algoritmos e Estruturas de Dados I
Sistemas Distribuídos Aula 6
Fundamentos de Programação 1
AsyncTask e Socket no Android
Linguagem C Para programadores Python
Prof. Wellington Franco Manipulação de Arquivos em C
Unidade IV– Relacionamento entre Objetos
Programação de Computadores I – Arquivos
Edson Susumu Asaga JavaBeans Edson Susumu Asaga
Algoritmos e Estruturas de Dados I
FUNDAMENTO DE PROGRAMAÇÃO
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Algoritmos e Estruturas de Dados I
Programação Orientada a Objetos
Desenvolvimento Androd Prof. Rone Ilídio
SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013.
Elaborando as Interfaces Aulas 37, 38 e 39.
Remote Method Invocation
Entrada e Saída de Dados com Arquivos – Java
Programação Orientada a Objetos*
Orientação a Objetos - Programação em C++
Programação Orientada a Objetos*
Rosemary Silveira Filgueiras Melo
Programação de Computadores I – Arquivos
3.1.7 Variáveis de Classe e Instância
Comunicação em Rede no JAVA
AsyncTask e Socket no Android
Laboratório I Mateus Raeder.
Visual Basic TCP.
Filas.
Conteúdo: Entrada e Saída Através de Arquivos.
Leitura do teclado e Interface gráfica
Tipos Primitivos de Dados
Prof. Rafael Mesquita Listas Encadeadas Prof. Rafael Mesquita
A classe String.
RESULUÇÃO DOS EXERCÍCIOS,
Ordenando Coleções A Classe Collections.
Programação Orientada a Objetos
Programação Orientada a Objetos
Unidade VI – Exceções e Interfaces
Constantes, Variáveis e Memória
Operadores Lógicos e Relacionais
RESULUÇÃO DOS EXERCÍCIOS E
Aula 9 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores de texto simples, enquanto que arquivos binários precisam ser abertos por programas específicos; Exemplos de arquivos: Texto (qualquer arquivo que só armazene texto): .txt, .xml, .bat … Binário (possuem uma codificação de bytes específica): .doc, .exe, .zip, …

Abertura de Arquivos Arquivos podem ser abertos para leitura (arquivo já existente) ou escrita (tanto faz); Esta abertura é usualmente realizada através da chamada à um construtor de classe apropriado (new): FileInputStream e FileOutputStream para leitura e escrita de arquivos vistos como uma sequência de bytes; FileReader e FileWriter para leitura e escrita de arquivos vistos como uma sequência de caracteres;

Fechamento de Arquivos Para o fechamento utilizamos o método close(); Antes da chamada a este método, o arquivo manipulado fica “bloqueado” para o programa que o utiliza; Por isso, é uma prática recomendável fechar o arquivo imediatamente após a sua utilização.

Exemplo de Leitura de Arquivo Binário import java.io.*; public class MostraArquivo { public static void main(String[] args) { InputStream fi = null; int i = -1; try { fi = new FileInputStream("c:\\teste.txt"); } catch (FileNotFoundException e) { System.out.println("Arquivo não encontrado !!"); } do { i = fi.read(); } catch (IOException e) { System.out.println("Arquivo não pode ser lido !!"); if (i != -1) System.out.print((char) i); } while (i != -1);

Exemplo de Leitura de Arquivo Texto import java.io.*; public class MostraArquivoTexto { public static void main(String[] args) { BufferedReader in = null; try { in = new BufferedReader(new FileReader("c:\\teste.txt")); String str; while ((str = in.readLine()) != null) { System.out.println(str); } in.close(); } catch (IOException e) {

Diferenças na Leitura de Arquivos Texto e Binário Pudemos observar que o arquivo binário dado estava sendo processado byte a byte; Em contra-partida, o arquivo texto estava sendo acessado linha por linha (método readLine()); Por processar vários bytes ao mesmo tempo, a leitura linha por linha é mais simples; Em arquivos binários não há o conceito de linha.

Solução do Segundo Exercício import java.io.*; public class CopiaArquivoTexto { public static void main(String[] args) { BufferedReader in = null; BufferedWriter out = null; try { in = new BufferedReader(new FileReader("c:\\teste.txt")); out = new BufferedWriter(new FileWriter("c:\\teste2.txt")); String str; while ((str = in.readLine()) != null) { out.write(str); } in.close(); out.close(); } catch (IOException e) {

Manipulação de Arquivos Binários A manipulação de arquivos binários possibilita mais eficiência no tratamento de arquivos; Para exemplificar, apresentaremos um exemplo de gravação de objetos (serialização); Neste exemplo, criaremos um conjunto de objetos, gravaremos estes num arquivo binário, e posteriormente recuperaremos seu conteúdo; Para um objeto ser serializável, sua classe precisa implementar a classe java.io.Serializable; Objetos que usualmente não são serializáveis são threads, sockets, etc. Mais informações: http://java.sun.com/developer/technicalArticles/Programmi ng/serialization/

Manipulação de Arquivos Binários 1/4 import java.io.*; public class Registro implements Serializable { int id; float nota; static int quant = 0; public Registro (float n) { quant++; id = quant; nota = n; }

Manipulação de Arquivos Binários 2/4 public static void main(String[] args) { InicializaRegistros(); RecuperaRegistros(); }

Exercícios Implemente o exemplo de registro de arquivos binários. FileWriter = FileOutputStream fos (caminho do arquivo) BufferedWriter = ObjectOutputStream oos(fos) oos. writeObject FileReader = FileInputStream fis (caminho do arquivo) BufferedReader = ObjectInputStream ois(fis) ois.readObject Implemente um programa que crie um arquivo e depois faça uma cópia do mesmo arquivo de texto.

Manipulação de Arquivos Binários 3/4 public static void InicializaRegistros() { try { Registro reg = null; FileOutputStream f = new FileOutputStream("c:\\dados.dat"); ObjectOutputStream fobj = new ObjectOutputStream(f); for (int i=1; i<=10; i++) { reg = new Registro(i); fobj.writeObject(reg); } fobj.close(); f.close(); } catch (FileNotFoundException e) { } catch (IOException e) {

Manipulação de Arquivos Binários 4/4 public static void RecuperaRegistros() { try { FileInputStream f = new FileInputStream("c:\\dados.dat"); ObjectInputStream fobj = new ObjectInputStream(f); for (int i=1; i<=10; i++) { Registro reg = (Registro)fobj.readObject(); System.out.print("Id: " + reg.id); System.out.println(" Nota: " + reg.nota); } fobj.close(); f.close(); } catch (FileNotFoundException e) { } catch (IOException e) { } catch (ClassNotFoundException e) {

Parte da Hierarquia de Classes de java.io