Introdução
O
principal o objectivo da dica de hoje é explicar de maneira simples e
pratica como se fazer leitura e escrita em arquivos texto (.txt), utilizando o
java para isso.
1. Criando arquivo
Foi criado um arquivo chamado file.txt que tem como objectivo ser utilizado para leitura e escrita. Inicialmente este arquivo está vázio como pode ser visto abaixo:
2. Código Java
Para explicar de maneira simples como funcionado a leitura e escrita de arquivos foi criado um projeto com o nome de Arquivo que tem duas classes:
- ManipuladorArquivo.java
- Principal.java
2.1 ManipuladorArquivo.java
Classe que tem como função manipular (leitura e escrita) do arquivo txt.
Abaixo é possivel ver a classe ManipuladorArquivo.java e seus métodos.
package com.blogspot.maguscode;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class ManipuladorArquivo {
public static void leitor(String path) throws IOException
{
BufferedReader buffRead = new BufferedReader(new FileReader(path));
String linha="";
while(true)
{
if(linha!=null){
System.out.println(linha);
}
else
break;
linha = buffRead.readLine();
}
buffRead.close();
}
public static void escritor(String path) throws IOException
{
BufferedWriter buffWrite = new BufferedWriter(new FileWriter(path));
String linha="";
Scanner in = new Scanner(System.in);
System.out.println("Escreva algo: ");
linha = in.nextLine();
buffWrite.append(linha+"\n");
buffWrite.close();
}
}
2.1.1 Breve explicação
Esta classe contem dois métodos estaticos um para realizar a leitura (leitor) e outro para realizar a escrita(escritor) em arquivos txt.
2.1.2 Método leitor
O método leitor tem como parâmetro de entrada o path (url/caminho) do arquivo que será lido como pode ser visto na assinatura do método:
public static void leitor(String path) throws IOException
Esse método tem como principal objetos internos o BufferedReader que nada mais é que a classe responsável por gera o buffer que será utilizado para realizar a leitura do arquivo .txt.
BufferedReader buffRead = new BufferedReader(new FileReader(path));
Uma parte importante deste método, responsável por exibir na tela as
linhas do arquivo txt poder ser considerado o trecho do laço while
que contém contém o metodo utilizado para obter o valor de uma linha
(string), no exemplo utilizado o valor da linha foi atribuída a uma
variável do tipo String como pode ser visto abaixo:
linha = buffRead.readLine();
O método escritor tem como parâmetro de entrada o path (url/caminho) do arquivo que será escrito como pode ser visto na assinatura do método:
Esse método tem como principal objectos
internos o BufferedWriter que nada mais é que a classe responsável por
gera o buffer que será utilizado para realizar a escrita no arquivo
.txt.
BufferedWriter buffWrite = new BufferedWriter(new FileWriter(path));
Uma parte importante deste método, responsável por inserir no arquivo txt é exactamente o método append localizado no objecto buffWrite, este método tem como função inserir uma nova sequência de caracteres ao arquivo texto.
buffWrite.append(linha+"\n");
2.1.4 Importante
É de suma importancia fechar os arquivos quando o método termina de utilizar os mesmo para isso basta utilizar o método close contido na classe de leitura ou escrita de arquivos.
buffWrite.close(); ou buffRead.close();
2.2 Principal.java
Classe que tem como principal função utilizar classe ManipuladorArquivo.java.
import java.io.IOException;
public class Principal {
public static void main(String args[]) throws IOException {
String path = "/tmp/file.txt";
ManipuladorArquivo.escritor(path);
ManipuladorArquivo.leitor(path);
}
}
2.2.1 Breve explicação
A classe contém único método estatico (main) que tem como função rodar o ManipularoArquivo passando para os métodos do mesmo o path do arquivo a ser manipulado.
3. Arquivo após utilização do Projeto
Após a execução do protrama é possível visualizar a seguinte linha no arquivo.txt
tela do eclipse durante a execução do arquivo |
Arquivo após execução do programa |