O principal objetivo deste poste é explicar de maneira simples como se realizar escrita e leitura de arquivos texto utilizando a linguagem de programação Python.
Escrita
Para escrita de um arquivo utilizamos o método open(string,string), que recebe dois parâmetros, o primeiro é o local onde está o arquivo que será aberto, o segundo é tipo de permissão, como vamos criar um arquivo para escrita utilizamos o parâmetro 'w' e o método write(string) do próprio tipo arquivo.
* caminho_do_arquivo - Caminho onde o arquivo será criado(caso não for especificado caminho o arquivo será criado no mesmo nível do arquivo .py que o chama).
* permissão - Permissão para abertura do arquivo (w - escrita , r -leitura)
*dados - String a ser inserida.
Exemplo:
arquivo = open('arquivo.txt','w')
arquivo.write('Isso é apenas um teste...')
Neste exemplo será criado um arquivo.txt com permissão de escrita e será adicionado o conteúdo "Isso é apenas um teste.." ao mesmo.
Leitura
Para escrita de um arquivo utilizamos o método
open(string,string), que recebe dois parâmetros, o primeiro é o local
onde está o arquivo que será aberto, o segundo é tipo de permissão, como
vamos criar um arquivo para leitura utilizamos o parâmetro 'r' e o
método read() do próprio tipo arquivo.
No
código acima é utilizado o método listFiles() de uma instãncia do
java.io.File, esse método tem a finalidade de retornar todos os
arquivos de um diretório que é referente na inicialização da da
instância do java.io.File (File
file
= new
File("/tmp/teste");).
O principal objetivo deste post é explicar de maneira simples e rápida como se faz uma listagem de todos arquivos de um determinado diretório utilizando a linguagem de programação java.
Tive um problema quando estava tentado acessar o local onde minha aplicação estava sendo executada (dentro da pasta bin do meu projeto), sempre que passava-se pelo trecho de código o path do arquivo parecia como errado, a solução para esse problema foi utilizar a classe java.nio.file.Paths.
Exemplo de retorno com erro: /C:/Users/Robson/dev/androis/Teste/bin/ Exemplo de retorno esperado:
C:\Users\Robson\dev\androis\Teste\bin Abaixo é possível visualizar a resolução deste problema.
import java.net.URISyntaxException; import java.nio.file.Paths; public class TesteMain { public static void main(String args[]) throws URISyntaxException { TesteMain testeMain = new TesteMain(); System.out.println("Sem correção"); System.out.println(testeMain.getClass().getProtectionDomain().getCodeSource().getLocation()); System.out.println("Com correção"); System.out.println(Paths.get(testeMain.getClass().getProtectionDomain().getCodeSource().getLocation().toURI())); }
} Após a execução do código acima o resultado expresso será: Sem correção file:/C:/Users/Ge3Software/dev/androis/Teste/bin/ Com correçã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.
} 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();
2.1.3 Método escritor
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:
public static void escritor(String path) throws IOException
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.
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
Há momento que precisamos rodar algum .jar ou até mesmo um programa e precisamos mudar algum parametro que o mesmo utiliza sem mecher no código fonte, uma solução simples para este problema é utilizar arquivos de propriedades.
Abaixo vamos ver uma maneira simples de criar uma arquivo de propriedades e fazer com o seu programa java leia o mesmo.
1º Crie o arquivo de propriedade.
O arquivo de propriedade nada mais que um arquivo com extenção .properties. O mesmo deve ser salvo em algum pré-determinado em seu programa java, para que o mesmo seja lido, nesse exemplo o meu arquivo de properties foi salvo dentro do projeto em uma pasta com o nome properties. Você pode salvar o seu arquivo de propriedades em qualquer lugar do seu computador, porém não se esqueça de colocar sua localização correta no seu programa.
Conteúdo do arquivo de propriedades:
prop.nome = Mario
prop.dir = /tmp
2º Crie um programa para ler o arquivo de propriedade.
Properties props = new Properties(); - Instancia-se a classe Properties FileInputStream file = new FileInputStream("./properties/dados.properties"); - Mostra a localização do arquivo .properties props.load(file); - Carrega o arquivo na variavel props.
No segundo método da classe:
Properties prop = getProp(); - Obtém o objeto Properties. System.out.println("Nome = "+prop.getProperty("prop.nome")); - Pega-se a propriedade do item prop.nome. System.out.println("Diretorio = "+prop.getProperty("prop.dir"));- Pega-se a propriedade do item prop.dir.
Resultado da execução do programa:
Saída:
**********Teste usando arquivo de propriedades**********
Nome = Mario
Diretorio = /tmp