Arquivo de configurações no Java (Properties)


Por diversos motivos pode ser necessário ter um arquivo com parâmetros de configuração para a sua aplicação Java e esse arquivo de configuração além de ser modo texto não seria performático se fosse adotado XML. Uma opção mais viável seria a adoção de um arquivo texto com a seguinte estrutura:

identificador = valor

Com o arquivo nessa estrutura podemos utilizar o seguinte para um teste rápido (colocar o nome do arquivo de config.ini):

****** Arquivo de configurações ********
inicial=1452
final=acabou
param1=Teste de leitura

Agora com poucas linhas de código iremos ler os valores necessários e imprimir na saida (console) da IDE (no caso estou utilizando o Netbeans, mas até um bloco de notas serve):

public class Main {
private static Properties config = new Properties();
private static String arquivo = "config.ini";
public static void main(String[] args) {
try {
config.load(new FileInputStream(arquivo));
System.out.println("Iniciando processo de leitura de configurações: ");
System.out.println();
System.out.println(config.getProperty("inicial"));
System.out.println(config.getProperty("param1"));
System.out.println(config.getProperty("final"));
System.out.println();
System.out.println("Finalizando leitura!");
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

Viu a simplicidade? Basta declar uma String com o nome e extensão do arquivo e uma variável do tipo Properties, em seguida carregas i stream utilizando o método load() e obtemos os valores por métodos getProperty().

A saída da execução do software deverá ser essa:

Iniciando processo de leitura de configurações:

1452
Teste de leitura
acabou

Finalizando leitura!

Agora a sua aplicação Java pode conter valores e demais informações de forma dinâmica, não vai ser preciso abrir o software para alterar um simples parâmetro de configuração e depois compilar tudo de novo, basta alterar o valor no arquivo de configuração e pronto.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.