Praticamente todos os programas precisam de algum tipo de configuracao, e
uma forma tradicional (e bastante simples) de fazer isso com Java envolve
os arquivos de propriedades, atraves da classes java.util.Properties.

A classe java.util.Properties guarda um conjunto de pares nome=valor, que
podem ser lidos ou gravados em um arquivo. Alem disso, a classe Properties
traz facilidades para voce acessar as propriedades e definir valores
padrao.

No exemplo abaixo, vamos carregar as propriedades padrao de um arquivo 
("padrao.properties"), depois ler as propriedades salvas pelo usuario 
("salvas.properties"), fazer algumas modificacoes, e depois salvar para uma 
proxima execussao do programa:

    import java.util.Properties;

    . . .
    // Cria e le os valores padrao
    Properties defaultProps = new Properties();
    FileInputStream in = new FileInputStream("padrao.properties");
    defaultProps.load(in);
    in.close(); 

    // Cria objeto de configuracao, com os valores padrao
    Properties applicationProps = new Properties(defaultProps); 

    // Carrega as propriedades configuradas na ultima execussao
    in = new FileInputStream("salvas.properties");
    applicationProps.load(in);
    in.close();

    . . .
    // Utilizamos as propriedades quando precisarmos
    String nome = applicationProps.getProperty("nome.usuario");
    String servidor = applicationProps.getProperty("servidor.ip");

    . . .
    // Modificamos os valores das (ou criamos novas) propriedades
    applicationProps.setProperty("nome.usuario", "Bruno JavaMan");
    applicationProps.setProperty("nova.propriedade", "12345");

    . . .
    // Salvamos para uma proxima execussao
    FileOutputStream out = new FileOutputStream("salvas.properties");
    applicationProps.store(out, "---Aqui vai um comentario ---");
    out.close();

    . . .

O codigo acima utiliza duas propriedades cujos nomes sao "nome.usuario" e 
"servidor.ip". Eh comum utilizamros como nomes de propriedades 
nomes.separados.por.pontos ou entao NomesComIniciaisMaiusculas, seguindo os 
padroes de nomenclatura de Java.

Eh tambem comum que o arquivo de propriedades tenha a extensao 
".properties", e no exemplo acima, o arquivo salvas.properties teria ao 
final um conteudo similar a:

    #---Aqui vai um comentario ---
    #Wed Jun 26 18:10:46 BRT 2002
    nome.usuario=Bruno JavaMan
    servidor.ip=10.0.0.1
    nova.propriedade=12345

Observe que o metodo Properties.getProperty() sempre devolve uma String, e
no caso da propriedade "nova.propriedade", esse valor teria que ser
convertido para um tipo numerico no momento de leitura.

Atualmente o uso de XML como forma de armazenar arquivos de configuracao 
vem ganahando popularidade, mas os arquivos de propriedades continuam ser 
uma forma simples e eficaz de gerenciar configuracoes simples.

Bons códigos!!!

Boletim Dicas Java - Sua dose diária de Java

Bruno.
______________________________________________________________________
Bruno Peres Ferreira de Souza                         Brazil's JavaMan
http://www.javaman.com.br            mailto:[EMAIL PROTECTED]
        if I fail, if I succeed, at least I live as I believe





================================================================
Dicas-Java circula diariamente com pequenas dicas
sobre a plataforma Java e é mantido pela Sociedade de
Usuários Java - SOUJAVA (http://www.soujava.org.br)
- Quer contribuir com uma dica sobre Java? Envie um
e-mail para [EMAIL PROTECTED]
- Participe de outras listas de discussão sobre a linguagem Java.
Saiba mais em http://www.soujava.org.br/lista.htm
------------------------------------------------------------------
- Para assinar este boletim envie um e-mail para [EMAIL PROTECTED]
- Para cancelar sua assinatura envie um e-mail para 
[EMAIL PROTECTED]
- O histórico das Dicas-List pode ser encontrado em 
http://www.mail-archive.com/dicas-list%40soujava.org.br




Responder a