Upload
internet
View
108
Download
3
Embed Size (px)
Citation preview
11:42
• Introdução
• Tipos de Fluxo de Dados e de Arquivos
• Manipulação de Arquivos em Java
− Classes FileReader e FileWriter
− Classes FileInputStream e FileOutputStream
− Classe RandomAccessFile
• Visão Geral sobre a Manipulação de Arquivos em C/C++
Manipulação de Arquivos
11:42
• Programas manipulam dados que geralmente se encontram na
memória do computador;
• Ex.: variáveis declaradas em um programa
• Esses dados são perdidos quando o programa é finalizado
Manipulação de Arquivos
11:42Manipulação de Arquivos
11:42
• Problema: como recuperar dados obtidos em uma execução anterior do programa?
• Solução: armazenar esses dados em disco na forma de arquivos
• Os arquivos permitem o armazenamento de dados por um longo período de tempo, em uma memória não-volátil, de forma independente do programa que o manipula
Manipulação de Arquivos
11:42Manipulação de Arquivos
Arquivo
Lê tempo
Escrevetempo
tempo
execução
11:42
• O fluxo de dados entre a aplicação e o arquivo pode ser de entrada ou de saída• Fluxo de Entrada: a aplicação lê dados do arquivo e armazena em uma variável
• Fluxo de Saída: a aplicação escreve o valor de uma variável no arquivo
Manipulação de Arquivos
ArquivoPrograma Java
ArquivoPrograma Java
11:42
• Os arquivos podem ser classificados em arquivos de texto ou arquivos binários
• Arquivos de texto: são compostos por uma série de caracteres ascii agrupados em uma ou mais linhas. São compreendidos pelos seres humanos.
•Arquivos binários: composto por uma série de bytes representados por caracteres não compreendidos pelo ser humano. São menores que os arquivos de texto. Ex.: imagens, vídeo, áudio, etc.
Manipulação de Arquivos
11:42
• Pacote java.io possui as classes para a manipulação de arquivos (import java.io.*;);
•Essas classes são divididas em duas hierarquias de acordo com o tipo de arquivos que manipulam:
•FileInputStream/FileOutputStream (arquivos binários)
•FileReader/FileWriter (arquivos de texto)
•Os arquivos e diretórios podem ser representados através da classe File
Manipulação de Arquivos
11:42Manipulação de Arquivos
• public String getParent(); retorna o diretório pai•public list(); retorna lista de arquivos contidos no diretório•public boolean isFile(); retorna se é um arquivo•public boolean isDirectory(); retorna se é um diretório•public boolean delete(); tenta apagar o diretório ou arquivo•public long length(); retorna o tamanho do arquivo em bytes•public boolean mkdir(); cria um diretório com o nome do arquivo•public String getAbsolutePath(); retorna o caminho absoluto•public String getPath();•public String getName();
11:42Manipulação de Arquivos
11:42
• Utilizada para escrita em arquivos de texto
•Construtores:
•public FileReader(String name)
•public FileReader(File file)
• Usa o método read() para ler um caracter por vez
Manipulação de Arquivos
11:42
• Exemplo
Manipulação de Arquivos
11:42
• Para agilizar a leitura é usada a classe BufferedReader
Manipulação de Arquivos
11:42
• Para agilizar a leitura é usada a classe BufferedReader
Manipulação de Arquivos
11:42
• Utilizada para escrita em arquivos de texto
•Construtores:
•public FileWriter(String name)
•public FileWriter(String name, boolean append)
•public FileWriter(File file)
•public FileWriter(File file, boolean append)
• Usa o método write() para escrever um caracter por vez
Manipulação de Arquivos
11:42
• Exemplo
Manipulação de Arquivos
11:42
• Para agilizar a escrita é utilizada a classe BufferedWriter
Manipulação de Arquivos
11:42
• Utilizada para escrita em arquivos binários
•Construtores:
•public FileOutputStream(String name)
•public FileOutputStream(String name, boolean append)
•public FileOutputStream(File file)
•public FileOutputStream(File file, boolean append)
Manipulação de Arquivos
11:42
• Exemplo:
• Exercício: escrever em um arquivo o texto digitado no teclado
Manipulação de Arquivos
11:42
• Utilizada para leitura de arquivos binários
•Construtores:
•public FileInputStream(String name)
•public FileInputStream(File file)
Manipulação de Arquivos
11:42
• Dados dois arquivos arq1 e arq2, desenvolva programas em java
que implementem as seguintes funcionalidades:
• copia o conteúdo do arq1 para arq2
• copia o conteúdo do arq1 para arq2, ao final dele (append)
• imprime na tela todo o conteúdo do arquivo arq1
• Obs.: os arquivos arq1 e arq2 são arquivos de texto
Manipulação de Arquivos
11:42
• Classe que permite a leitura e escrita em um arquivo com
acesso randômico
•Possui um file pointer que indica a posição atual para acessar o
arquivo
• o file pointer pode ser obtido através do método getFilePointer
e alterado através do método seek
Manipulação de Arquivos
11:42
• Exemplo de leitura
Manipulação de Arquivos
11:42
• Diferente de Java, as principais funções para manipulação de arquivos em C/C++ não utilizam os conceitos de orientação a objetos• Para manipular arquivos com essas funções deve ser seguida a sequência de operacões:• abrir o arquivo – fopen()• ler/escrever no arquivo – getc()/putc() – fgets()/fputs() – fscanf() /fprintf() •Fechar o arquivo – fclose()
Manipulação de Arquivos
11:42
• Java: Como Programar, HARVEY M. DEITEL & PAUL J. DEITEL, Prentice-Hall, 2005.•Head First Java, KATHY SIERRA & BERT BATEA, O´Reilly, 2005.•C Completo e Total, HERBERT SCHILDT, Makron Books, 1997.• www.dca.ufrn.br/~clauber/
Manipulação de Arquivos