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


2 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