Vous êtes sur la page 1sur 4

www.de vm e dia.com .

br

[ve rso para im pre sso]

Criando e Gravando dados em Txt com Java

Neste primeiro artigo sobre arquivos texto em aplicaes Java ser demonstrada a criao e a gravao de um arquivo. Em arquivos no formato texto os dados so armazenados como uma sequncia de caracteres dividida em linhas terminadas por um caractere de fim de linha. Este tipo de arquivo geralmente so encontrados com nomes com a extenso padro TXT (abreviao de TEXT, ou texto em ingls).
Arquivo Texto (TXT) Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazo de grandes volumes de dados. Dados mantidos em arquivos so chamados de dados persistentes porque eles existem alm da durao da execuo do programa em dispositivos de armazenamento secundrio como disquete, disco rgido, entre outros. Nos artigos sobre arquivos texto ser demostrado como as aplicaes Java criam, recuperam, atualizam e processam arquivos de dados. O processamento de arquivo representa um subconjunto das capacidades de processamento que permitem a um programa armazenar e processar volumes macios de dados persistentes. Neste primeiro artigo ser demonstrada a criao e a gravao de um arquivo texto no qual os dados so armazenados como uma sequncia de caracteres dividida em linhas terminadas por um caractere de fim de linha. Os arquivos no formato texto geralmente so encontrados com nomes com a extenso padro TXT (abreviao de TEXT, ou texto em ingls). Arquivos texto podem ser facilmente lido ou abertos por qualquer programa que l texto e, por essa razo, so considerados universais. Programas Java implementam o processamento de arquivos utilizando as classes do pacote java.io. A hierarquia de classes oferecida por este pacote, apresentada de forma parcial na Figura 1, relativamente grande e complexa, oferecendo mais de 50 classes distintas para o processamento de entrada e sada em arquivos baseados em bytes e caracteres e arquivos de acesso aleatrio. Os arquivos so abertos criando-se objetos atravs de uma das classes de fluxo, citando: * FileInputStream: para entrada baseada em bytes de um arquivo. * FileOutputStream: para sada baseada em bytes para um arquivo. * RandomAccessFile: para entrada e sada baseada em bytes de e para um arquivo. * FileReader: para entrada baseada em caracteres de um arquivo. * FileWriter: para sada baseada em caracteres para um arquivo.

Figura 1. Hierarquia parcial de classes do pacote java.io. Para demonstrar a utilizao das classes para entrada ou sada baseada em caracteres na manipulao de arquivos texto ser desenvolvida uma aplicao Java para gravar a tabuada de um nmero em um arquivo externo denominado de "tabuada.txt" criado na unidade de disco "d". Desenvolvendo a Aplicao Java Nos arquivos de texto os dados so organizados como uma sequncia de caracteres dividida em linhas terminadas por um caractere de fim de linha (\n). A interao de um programa com um dispositivo atravs de arquivos passa por trs etapas: abertura ou criao de um arquivo, leitura ou gravao de dados e fechamento do arquivo. A Listagem 1 apresenta como utilizar as classes FileWriter e PrinterWriter na criao e gravao de dados baseada em caracteres para um arquivo de texto. Os mtodos print(), println() e printf() so aplicados na gravao de caracteres. Listagem 1. Gravando dados em um arquivo texto.
i m p o r tj a v a . i o . F i l e W r i t e r ; i m p o r tj a v a . i o . I O E x c e p t i o n ; i m p o r tj a v a . i o . P r i n t W r i t e r ; i m p o r tj a v a . u t i l . S c a n n e r ; p u b l i cc l a s sE x e m p l o{ p u b l i cs t a t i cv o i dm a i n ( S t r i n g [ ]a r g s )t h r o w sI O E x c e p t i o n{ S c a n n e rl e r=n e wS c a n n e r ( S y s t e m . i n ) ; i n ti ,n ; S y s t e m . o u t . p r i n t f ( " I n f o r m eon m e r op a r aat a b u a d a : \ n " ) ; n=l e r . n e x t I n t ( ) ; F i l e W r i t e ra r q=n e wF i l e W r i t e r ( " d : \ \ t a b u a d a . t x t " ) ; P r i n t W r i t e rg r a v a r A r q=n e wP r i n t W r i t e r ( a r q ) ; g r a v a r A r q . p r i n t f ( " + R e s u l t a d o + % n " ) ; f o r( i = 1 ;i < = 1 0 ;i + + ){ g r a v a r A r q . p r i n t f ( " |% 2 dX% d=% 2 d| % n " ,i ,n ,( i * n ) ) ; } g r a v a r A r q . p r i n t f ( " + + % n " ) ; a r q . c l o s e ( ) ; S y s t e m . o u t . p r i n t f ( " \ n T a b u a d ad o% df o ig r a v a d ac o ms u c e s s oe m\ " d : \ \ t a b u a d a . t x t \ " . \ n " ,n ) ; } }

Entendendo o cdigo fonte da Listagem 1:

[ 1 ] O arquivo externo "tabuada.txt" aberto para operaes de sada atravs do objeto arq instanciado e criado a partir da classe FileWriter. O objeto de gravao gravarArq associado a um fluxo de sada de dados baseado [2] em caracteres atravs da classe PrinterWriter. Definido o arquivo de texto externo, foi implementado o processo de repetio (for) [ 3 ] para montar a tabuada de n gravando o resultado no arquivo, que fechado atravs do mtodo close(). Observe que os smbolos %n usados no mtodo printf() gravam um pula linha [4] (caractere de escape \n) no arquivo de sada. Executando a aplicao deve-se informar o nmero da tabuada. Ao final do processo de gravao da tabuada no arquivo texto ser apresentada uma mensagem indicando que o arquivo "tabuada.txt" foi criado com sucesso na unidade de disco "d". Para visualizar o resultado da gravao basta abrir o arquivo "tabuada.txt" atravs do bloco de notas, por exemplo. Na Figura 2 pode-se observar a sequncia de passos na gravao da tabuada do 8.

Figura 2. Ilustrando a execuo da aplicao e abrindo o arquivo texto no bloco de notas. Neste artigo foi apresentado como gravar informaes em um arquivo texto. No prximo artigo sobre a manipulao de arquivos texto em aplicaes Java ser demonstrado como efetuar a operao de leitura. Veja tambm: Arquivos e fluxos de dados - Revista Easy Java Magazine 12 Criando e Gravando dados em Txt com Delphi Obrigado e um abrao. Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/) Aplicaes Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)

por Omero Francisco Bertol

Tcnico Mecnico pelo CEFET, Curitiba/PR. Tecnlogo em Processamento de Dados pela UEM, Maring/PR. Especialista em Informtica pela Universidade Federal do Paran. Mestre em Informtica Aplicada pelo Programa de Ps Graduao em Informtica Aplicada da PUC, Curitiba/PR. Professor de Ensino Superior desde 1989 trabalhando os fundamentos da programao com as Linguagens Pascal, C e Java. www.devmedia.com.br/articles/viewcomp.asp?comp=23060

Vous aimerez peut-être aussi