Upload
jrnove
View
215
Download
0
Embed Size (px)
Citation preview
7/24/2019 Arquivos (2) vbbvb
1/10
Bacharelado em Cincia e Tecnologia
Leitura e Escrita em Arquivos
Profa Maria das Graas B. Marietto (teoria) [email protected] Christine Marie Schweitzer (prtica) [email protected]
Adaptaes: Marcelo Zanchetta do Nascimento
7/24/2019 Arquivos (2) vbbvb
2/10
2
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
H vrias fontes (entrada) de onde se deseja ler, oudestinos (sada) para onde se deseja gravar ou enviar
dados: Arquivos Conexes via socket com outros programas Memria Teclado, tela, impressora, mouse, etcH vrias formas diferentes de ler/escrever dados: Sequencialmente/aleatoriamente
Como bytes, como caracteres Linha por linha, palavra por palavra, etc
MOTIVAO
Como oferecer estes servios em
Java??
7/24/2019 Arquivos (2) vbbvb
3/10
3
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
STREAM (FLUXO)A linguagem Java NO trata dispositivos de
entrada e sada de forma especfica, ou seja,com classes
Ao invs disso, Java utiliza um mecanismogenrico que permite tratar E/S de formauniforme: Streams de entrada e sada
Um Stream um canal por onde trafegamdados entre um processo computacional euma origem, ou destino, de dados
A ordem do fluxo de dados, entrada ou sada, relevantena escolha do Stream a ser utilizado
7/24/2019 Arquivos (2) vbbvb
4/10
4
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
Stream de entrada: para obter informaes, uma aplicaoabre um Stream de uma fonte (arquivo, socket, memria,etc) e l os dados desejados
STREAM DE ENTRADA E SADA
Stream de sada: Para enviar informaes, uma aplicaoabre um Stream para um destino (arquivo, socket,memria) e escreve os dados
7/24/2019 Arquivos (2) vbbvb
5/10
5
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
Independentemente da fonte/destino e do tipo deinformaes, os algoritmos para leitura e escrita sobasicamente os mesmos
LEITURA E ESCRITA EM STREAMs
Leituraabre um Stream
enquanto h informao
l informao
fecha o Stream
Escritaabre um stream
enquanto h informao
escreve informao
fecha o Stream
7/24/2019 Arquivos (2) vbbvb
6/10
6
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
PERSISTNCIA DE DADOSDuas abordagens comuns para implementar a persistncia
de dados:
Armazenar dados em arquivos texto
Persistncia de dados consiste no armazenamentoconfivel e coerente das informaes, em um sistema
de armazenamento de dados
7/24/2019 Arquivos (2) vbbvb
7/10
7
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
PERSISTNCIA DE DADOS EM ARQUIVOS TEXTOOs dados so salvos em arquivos, separados por algum
caracter como por exemplo :
Um arquivo texto pode ser editado e visualizado facilmentepor humanosSimples para fazer intercmbio de dados entre programas
diferentes
7/24/2019 Arquivos (2) vbbvb
8/10
8
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
ESCRITA/GRAVAO EM ARQUIVOS TEXTOCompreende a criao do arquivo, o armazenamento dos
dados, e o fechamento do arquivo
FileWriter: Estabele a conexo com o arquivo. Usadopara a sada, para um arquivo, baseada em caracteresFileWriter arq = new FileWriter( nomeArq );
PrintWriter: Para escrevermos Strings no arquivo,
precisamos de um objeto PrintWriter associado aoFileWriterPrintWriter out = new PrintWriter( arq );
Podemos ento usar os mtodos print() e println() da
classe PrintWriterDevemos implementar o cdigo dentro de um blocotry/catch, pois excees podem ser geradas(IOException)
7/24/2019 Arquivos (2) vbbvb
9/10
9
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
ESCRITA SEQENCIAL EM ARQUIVOS TEXTOBufferredWriter: Esta classe permite uma sada
buferizada
Uma operao de sada no grava imediatamente os dadosno arquivoCom o mtodo flush(), de tempos em tempos uma
quantidade de dados enviada para o arquivo
7/24/2019 Arquivos (2) vbbvb
10/10
10
BC-0502 Metodologias e Algoritmos Computacionais
Escrita e Leitura em Arquivos
LEITURA SEQENCIAL EM ARQUIVOS TEXTOConsiste na recuperao das informaes armazenadas em
um arquivo, para serem utilizadas por determinadoprograma
FileReader: Estabele a conexo com o arquivo. Umaoperao de entrada l um caracter. Ou seja, trabalhacom um caracter por vez
FileReader ent = new FileReader( nomeArq );BufferedReader: Entrada buferizada. Uma operao de
entrada l vrios caracteres de uma nica vezBufferedReader br = new BufferedReader (ent);
Mtodo utilizado para leitura: br.readLine()Este mtodo retorna null quando o final do arquivo for
atingido