Criando e Lendo arquivos Texto em Java

Olá pessoal…

Hoje irei mostrar como criar e ler arquivos texto em java, ou seja, criando e lendo arquivos .txt em Java, e também mostrarei uma forma fácil de ler e criar arquivos .xml.

Pessoal, a manipulação de arquivos texto em java, é simples, porém em alguns casos trabalhosa para o objetivo que deseja alcançar, abaixo um exemplo simples de manipulação de arquivos… Vale ressaltar pessoal, que arquivos, quando não passados diretórios (ex.: ‘teste.txt), ele busca na mesma pasta de execução do programa .java, agora se passar um diretório simples (ex.: ‘arquivos/teste.txt’), na raíz do programa .java, ele vai procurar o diretório arquivos e tentar abrir o arquivo texto, ou você pode passar o diretório absoluto (ex.: ‘/home/usuario/Trabalho/arquivo.txt’ ou ‘c:/Trabalho/arquivo.txt’).
Ah e a classe swing, foi usada para mostrar mensagens gráficas ao usuário.
A Biblioteca Formatter serve para formatar arquivos texto (criar, recriar, alterar).
A Biblioteca File, fornece também a função File, que pode verificar se existe o arquivo, ou até mesmo pegar o tamanho do arquivo, renomear, etc.
As funções de FileReader e BufferedReader, servem para ler o conteúdo de arquivos texto, porém uma apenas abre o arquivo para leitura (FileReader), enquanto a outra, percorre o arquivo, armazenando o valor, semelhante a ponteiros (BufferedReader), lembrando que o Buffer só chega ao fim do arquivo se for ‘null’. E para se usar as duas, deve-se usar dentro de um try (tente), pois não é sempre que o arquivo é liberado para leitura.

#> Arquivos Texto (*.txt):
Conteúdo do arquivo texto:

“TI não é para os nerds, é para os persistentes! – Luis Silveira, 2013

Para se dar bem na prova, não basta colar, tem que entender! – Ramsés Yshizuka, 2013

If (Media < 6) { alunoRetido(); retProxSemestre(); } – Matheus Serafim, 2013″

$> Ler arquivo .txt:

import javax.swing.*;
import java.io.*;
/*  //ou usar lib por lib
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;*/

public class leTxt{

  public static void main(String[] args){
    String mostra="";
    String nomeArq="arquivo.txt"; //Nome do arquivo, pode ser absoluto, ou pastas /dir/teste.txt
    String linha="";
    File arq = new File(nomeArq);

    //Arquivo existe
    if (arq.exists()){
      mostra="Arquivo - '"+nomeArq+"', aberto com sucesso!\n";
      mostra+="Tamanho do arquivo "+Long.toString(arq.length())+"\n";
      //tentando ler arquivo
      try{
        mostra+="Conteudo:\n";
        //abrindo arquivo para leitura
        FileReader reader = new FileReader(nomeArq);
        //leitor do arquivo
        BufferedReader leitor = new BufferedReader(reader);
        while(true){
          linha=leitor.readLine();
          if(linha==null)
            break;
          mostra+=linha+"\n";
        }
      }
      catch(Exception erro) {}
      JOptionPane.showMessageDialog(null,mostra,"Arquivo...",1);
    }
    //Se nao existir
    else
      JOptionPane.showMessageDialog(null,"Arquivo nao existe!","Erro",0);
  }
}
Lendo arquivo Texto com Java

Lendo arquivo Texto com Java

$> Criar arquivo .txt:

import javax.swing.*;
import java.util.Formatter; //formatar arquivo

public class criaTxt{
  
  public static void main(String[] args){
    String nomeArq="gerado.txt";
    //tentando criar arquivo
    try
    {
      Formatter saida = new Formatter(nomeArq);
      saida.format("Arquivo gerado automaticamente!\n\n...www.terminaldeinformacao.com...");
      saida.close();
      JOptionPane.showMessageDialog(null,"Arquivo '"+nomeArq+"' criado!","Arquivo",1);
    }
    //mostrando erro em caso se nao for possivel gerar arquivo
    catch(Exception erro){
      JOptionPane.showMessageDialog(null,"Arquivo nao pode ser gerado!","Erro",0);
    }
  } 
}
Criando arquivo Texto com Java

Criando arquivo Texto com Java

#> Arquivos XML (*.xml):
Conteúdo do arquivo xml:

“<?xml version=’1.0′ encoding=’ISO-8859-1′ ?>
<cadastros>
  <pessoa>
    <nome>Daniel</nome>
    <idade>19</idade>
  </pessoa>
  <pessoa>
    <nome>Math</nome>
    <idade>18</idade>
  </pessoa>
  <pessoa>
    <nome>Chuck</nome>
    <idade>25</idade>
  </pessoa>
</cadastros>”

$> Ler arquivo .xml:

import javax.swing.*;
import java.io.*;
/*  //ou usar as libs separadas
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;*/

public class leXML{

  public static void main(String[] args){
    String mostra="";
    String nomeArq="nomes.xml"; //Nome do arquivo, pode ser absoluto, ou pastas /dir/teste.txt
    String linha="";
    String nome, idade;
    File arq = new File(nomeArq);

    //Arquivo existe
    if (arq.exists()){
      mostra="Arquivo - '"+nomeArq+"', aberto com sucesso!\n";
      mostra+="Tamanho do arquivo "+Long.toString(arq.length())+"\n";
      //tentando ler arquivo
      try{
        mostra+="Conteudo:\n";
        //abrindo arquivo para leitura
        FileReader reader = new FileReader(nomeArq);
        //leitor do arquivo texto (ponteiro)
        BufferedReader leitor = new BufferedReader(reader);
        mostra+="Nome - Idade\n";
        leitor.readLine(); //<xml
        leitor.readLine(); //<cadastro
        while(true){
          leitor.readLine(); //<pessoa
          nome=leitor.readLine();
          if(nome==null)
            break;
          idade=leitor.readLine(); //</pessoa
          //Para pegar entre as Tags, foi preciso criar uma lógica para quebrar a String
          nome=nome.substring(nome.indexOf(">")+1, nome.indexOf("/")-1); //pegando entre as tags
          idade=idade.substring(idade.indexOf(">")+1, idade.indexOf("/")-1); //pegando entre as tags
          mostra+=nome+"-"+idade+"\n";
          leitor.readLine();
        }
      }
      catch(Exception erro) {}
      JOptionPane.showMessageDialog(null,mostra,"Arquivo...",1);
    }
    //Se nao existir
    else
      JOptionPane.showMessageDialog(null,"Arquivo nao existe!","Erro",0);
  }
}
Lendo XML com Java

Lendo XML com Java

$> Criar arquivo .xml:

import javax.swing.*;
import java.util.Formatter; //para formatar arquivo

public class criaXML{
  
  public static void main(String[] args){
    String nomeArq="gerado.xml";
    String texto="";
    //tentando criar arquivo
    try
    {
      Formatter saida = new Formatter(nomeArq);
      texto="<?xml version='1.0' encoding='ISO-8859-1' ?>\n"+
          "<cadastros>\n";
      for (int indice=1; indice<=5; indice++){
        "  <aluno>\n";
        "    <matricula>0000"+
        Integer.toString(indice)+"</matricula>\n";
        "  </aluno>\n";
      }
      "</cadastros>";
      saida.format(texto);
      saida.close();
      JOptionPane.showMessageDialog(null,"Arquivo '"+nomeArq+"' criado!","Arquivo",1);
    }
    //mostrando erro em caso se nao for possivel gerar arquivo
    catch(Exception erro){
      JOptionPane.showMessageDialog(null,"Arquivo nao pode ser gerado!","Erro",0);
    }
  }
  
}
Criando XML com Java

Criando XML com Java

Download do código fonte:
Download pelo OneDrive
Ou
Download pelo 4Shared
Dúvidas com os Downloads?

Bom pessoal, por hoje é só.
Abraços e até a próxima.

#> Poderá gostar de...
$> Exemplos de Funções em Java
$> Conceitos de Programação: Orientação a Objeto
$> Vídeo Aula – Programando em Java #03

Upgrade

About these ads

About daniel atilio

Apenas um nerd que gosta de computação e programação... Que compartilha um pouco que sabe.

Posted on 19 de Abril de 2013, in Desenvolvimento and tagged . Bookmark the permalink. 14 Comentários.

  1. Bah, Valeu mesmo, me ajudou bastante, belo trabalho…

    Gosto

  2. rsrs véi na boa, nao li isso aí nao kkkkkkkkkkkkkkk
    um dia pretendo ler kkkkkkk mas ainda ta meio grego, mas um dia eu volto rsrsrs

    preciso aprender isso, parece tão legal rsrs

    Gosto

  3. Será que seria possível disponibilizar pasta compactada do sistema acima??? Estou tendo dificuldade. Sempre dá arquivo inexistente.

    Gosto

    • Boa noite Ian,
      Primeiramente, obrigado pelo apoio ao blog…
      Desculpe, não entendi sua dúvida.
      Disponibilizar pasta compactada do sistema? Quer abrir um arquivo compactado, ou ler um arquivo texto de dentro de um arquivo compactado, ou é outra dúvida?
      Abraços.

      Gosto

  4. Olha eu estou fazendo Técnico em informática, e consegui resolver o meu trabalho a partir do código, muito bom, valeu mesmo.

    Gosto

  5. Excelente tutorial.

    Gosto

  6. Estou colocando o \n mas não esta pulando a linha

    Gosto

  7. Tenho uma duvida. Eu fiz um código simples que pede para o usuário informar somente o nome e este nome é guardado em um arquivo txt. O problema é que se eu rodo o código varias vezes os nomes são substituídos ao invés de se criar mais um arquivo. Tem como resolver isso?

    Gosto

    • Boa noite Bruno.
      O que pode ser feito, é a cada vez que for gerar o arquivo, reler tudo e adicionar o texto.
      Agora se quiser criar outros arquivos, solicite ou para o usuário informar o nome do arquivo, ou faça um laço e defina o nome do arquivo conforme se ele existir ou não.
      Abração e boa sorte.

      Gosto

Deixar uma resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

WordPress.com Logo

Está a comentar usando a sua conta WordPress.com Log Out / Modificar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Log Out / Modificar )

Facebook photo

Está a comentar usando a sua conta Facebook Log Out / Modificar )

Google+ photo

Está a comentar usando a sua conta Google+ Log Out / Modificar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Junte-se a 449 outros seguidores

%d bloggers like this: