arquivos (2) vbbvb

Upload: jrnove

Post on 21-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 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