sexta-feira, 6 de maio de 2011

Criando e usando arquivos de propriedades em java





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.










Conteúdo do programa:


import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
 *
 * @author Robson Fernando Gomes
 * http://maguscode.blogspot.com
 *
 */
public class ArquivoDePropriedades {

   
    public static Properties getProp() throws IOException
    {
        Properties props = new Properties();
        FileInputStream file = new FileInputStream("./properties/dados.properties");
        props.load(file);
        return props;
       
    }
   
    public static void main(String args[]) throws IOException
    {
        System.out.println("**********Teste usando arquivo de propriedades**********");
        Properties prop = getProp();
        System.out.println("Nome = "+prop.getProperty("prop.nome"));
        System.out.println("Diretorio = "+prop.getProperty("prop.dir"));
    }
}





O código pode ser simplicado da seguinte maneira:


No primeiro método da classe:


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


3 comentários:

  1. Oi estou com uma dúvida, e se eu quisesse, criar vários nomes com diferentes diretórios. Ou seja cada novo nome com seu diretório específico. Como eu faria isso??? Grato

    ResponderExcluir
  2. Para ajudar na tradução dos arquivos .properties de maneira online, eu recomendo esta colaborativa plataforma de tradução do software - https://poeditor.com/

    ResponderExcluir