criando e gravando dados em txt com java

4

Click here to load reader

Upload: janerson-douglas

Post on 02-Dec-2015

30 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Criando e Gravando Dados Em Txt Com Java

www.devmedia.com.br [versão para impressão]

Criando e Gravando dados em Txt com JavaNeste primeiro artigo sobre arquivos texto em aplicações Java será demonstradaa criação e a gravação de um arquivo. Em arquivos no formato texto os dados sãoarmazenados como uma sequência de caracteres dividida em linhas terminadaspor um caractere de fim de linha. Este tipo de arquivo geralmente sãoencontrados com nomes com a extensão padrão TXT (abreviação de TEXT, outexto em inglês).

Arquivo Texto (TXT)Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazode grandes volumes de dados. Dados mantidos em arquivos são chamados de dados persistentesporque eles existem além da duração da execução do programa em dispositivos de armazenamentosecundário como disquete, disco rígido, entre outros.

Nos artigos sobre arquivos texto será demostrado como as aplicações Java criam, recuperam,atualizam e processam arquivos de dados. O processamento de arquivo representa um subconjuntodas capacidades de processamento que permitem a um programa armazenar e processar volumesmaciços de dados persistentes.

Neste primeiro artigo será demonstrada a criação e a gravação de um arquivo texto no qual os dadossão armazenados como uma sequência de caracteres dividida em linhas terminadas por um caracterede fim de linha. Os arquivos no formato texto geralmente são encontrados com nomes com aextensão padrão TXT (abreviação de TEXT, ou texto em inglês). Arquivos texto podem serfacilmente lido ou abertos por qualquer programa que lê texto e, por essa razão, são consideradosuniversais.

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 deentrada e saída em arquivos baseados em bytes e caracteres e arquivos de acesso aleatório. Osarquivos são abertos criando-se objetos através de uma das classes de fluxo, citando:* FileInputStream: para entrada baseada em bytes de um arquivo.* FileOutputStream: para saída baseada em bytes para um arquivo.* RandomAccessFile: para entrada e saída baseada em bytes de e para um arquivo.* FileReader: para entrada baseada em caracteres de um arquivo.* FileWriter: para saída baseada em caracteres para um arquivo.

Page 2: Criando e Gravando Dados Em Txt Com Java

Figura 1. Hierarquia parcial de classes do pacote java.io.

Para demonstrar a utilização das classes para entrada ou saída baseada em caracteres namanipulação de arquivos texto será desenvolvida uma aplicação Java para gravar a tabuada de umnúmero em um arquivo externo denominado de "tabuada.txt" criado na unidade de disco "d".

Desenvolvendo a Aplicação JavaNos arquivos de texto os dados são organizados como uma sequência de caracteres dividida emlinhas terminadas por um caractere de fim de linha (\n). A interação de um programa com umdispositivo através de arquivos passa por três etapas: abertura ou criação de um arquivo, leitura ougravação de dados e fechamento do arquivo.

A Listagem 1 apresenta como utilizar as classes FileWriter e PrinterWriter na criação e gravaçãode dados baseada em caracteres para um arquivo de texto. Os métodos print(), println() eprintf() são aplicados na gravação de caracteres.

Listagem 1. Gravando dados em um arquivo texto.

import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.Scanner;

public class Exemplo {

public static void main(String[] args) throws IOException { Scanner ler = new Scanner(System.in); int i, n;

System.out.printf("Informe o número para a tabuada:\n"); n = ler.nextInt();

FileWriter arq = new FileWriter("d:\\tabuada.txt"); PrintWriter gravarArq = new PrintWriter(arq);

gravarArq.printf("+--Resultado--+%n"); for (i=1; i<=10; i++) { gravarArq.printf("| %2d X %d = %2d |%n", i, n, (i*n)); } gravarArq.printf("+-------------+%n");

arq.close();

System.out.printf("\nTabuada do %d foi gravada com sucesso em \"d:\\tabuada.txt\".\n", n); }

}

Entendendo o código fonte da Listagem 1:

Page 3: Criando e Gravando Dados Em Txt Com Java

[ 1 ] O arquivo externo "tabuada.txt" é aberto para operações de saída através do objetoarq instanciado e criado a partir da classe FileWriter.

[ 2 ]O objeto de gravação gravarArq é associado a um fluxo de saída de dados baseadoem caracteres através da classe PrinterWriter.

[ 3 ]Definido o arquivo de texto externo, foi implementado o processo de repetição (for)para montar a tabuada de n gravando o resultado no arquivo, que é fechado atravésdo método close().

[ 4 ]Observe que os símbolos %n usados no método printf() gravam um pula linha(caractere de escape \n) no arquivo de saída.

Executando a aplicação deve-se informar o número da tabuada. Ao final do processo de gravação databuada no arquivo texto será apresentada uma mensagem indicando que o arquivo "tabuada.txt" foicriado com sucesso na unidade de disco "d". Para visualizar o resultado da gravação basta abrir oarquivo "tabuada.txt" através do bloco de notas, por exemplo. Na Figura 2 pode-se observar asequência de passos na gravação da tabuada do 8.

Figura 2. Ilustrando a execução da aplicação e abrindo o arquivo texto no bloco de notas.

Neste artigo foi apresentado como gravar informações em um arquivo texto. No próximo artigo sobrea manipulação de arquivos texto em aplicações Java será demonstrado como efetuar a operação deleitura.

Veja também:Arquivos e fluxos de dados - Revista Easy Java Magazine 12Criando e Gravando dados em Txt com Delphi

Obrigado e um abraço.

Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)Aplicações Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)

por Omero Francisco Bertol

Page 4: Criando e Gravando Dados Em Txt Com Java

Técnico Mecânico pelo CEFET, Curitiba/PR. Tecnólogo em Processamento de Dados pela UEM,Maringá/PR. Especialista em Informática pela Universidade Federal do Paraná. Mestre em InformáticaAplicada pelo Programa de Pós Graduação em Informática Aplicada da PUC, Curitiba/PR. Professor deEnsino Superior desde 1989 trabalhando os fundamentos da programação com as Linguagens Pascal,C e Java.

www.devmedia.com.br/articles/viewcomp.asp?comp=23060