Como usar arquivos .properties ?

422 views
Skip to first unread message

Tux Slack

unread,
Jul 28, 2008, 11:49:14 AM7/28/08
to pb...@googlegroups.com
Olá pessoal,

Gostaria de saber como ler arquivos .properties nos .java. A situação é a seguinte: a base de dados da aplicação é um arquivo, daí no parâmetro do RandomAcessFile() eu passo uma String com o nome do arquivo, mas eu queria parametrizar esse passo. Para caso o nome do arquivo mude, só preciso ir no .properties e nao no .java.

Também pensei fazer isso com ENUM.

Seguindo com aquela novela de Boas Práticas. O que vcs me sugerem? Enum ou Properties? Se for Properties, como ler o valor do propertie no .java?

Obrigado.

Flávio Santos

unread,
Jul 28, 2008, 11:54:16 AM7/28/08
to pb...@googlegroups.com
O ENUM não seria algo estático? Não entendi como isso poderia te dar
flexibilidade.

Sugiro o Properties mesmo:
http://java.sun.com/javase/6/docs/api/java/util/Properties.html

Flávio Roberto Santos
http://www.ourgrid.org/~flavio



2008/7/28 Tux Slack <slac...@gmail.com>:

Rodrigo C. L.

unread,
Jul 28, 2008, 11:57:41 AM7/28/08
to pb...@googlegroups.com
usa a classe ResourceBundle

ResourceBundle rs= ResourceBundle.getBundle(propertyFileName);

aí pra pegar as Stringsd, faz String str = rs.getString(key);

é o q eu faço, pelo menos... mas dá uma olhada no javadoc dela. Ela é
muito usada pra internacionalização, mas enfim...

2008/7/28 Flávio Santos <flavio...@gmail.com>:
--
||
|| Rodrigo Cerqueira Lopes
|| Estudante de computação na UFCG
|| Também em rodr...@lcc.ufcg.edu.br
||
|| "Sofisticado - 1. Falsificado, contrafeito, adulterado. (...)"
|| Aurélio Ed. Eletrônica v3.0
||

Tux Slack

unread,
Jul 28, 2008, 12:30:12 PM7/28/08
to pb...@googlegroups.com
Rodrigo, fiz do jeito como vc falou mas deu MissingResourceException: ResourceBundle rs = ResourceBundle.getBundle("db.properties");
o arquivo está localizado na raiz do projeto.

Flávio, como fazer utilizando a classe Properties? dei uma olhada na API, o construtor da classe pede um parametro do tipo Properties, não entendi como fazer isso.. vc teria um exemplo?

Obrigado.

Sebastião E. P. Rabelo Júnior

unread,
Jul 28, 2008, 12:34:08 PM7/28/08
to pb...@googlegroups.com
Tuz use o método load() passando um Reader ou um InputStram.

[]s

2008/7/28 Tux Slack <slac...@gmail.com>

Carlos Trajano de Oliveira

unread,
Jul 28, 2008, 12:41:46 PM7/28/08
to pb...@googlegroups.com
Olha um exemplo bacana,

//Classe Java

import java.net.URL;
import java.util.Properties;

public class CarregaProperties {
   
    public static final Properties properties;
    private static String path;

   
    static {
        properties = new Properties();       
        loadConfiguracao();
    }

    private static void loadConfiguracao() {
        try {
            URL resource = CarregaProperties.class.getResource("config.properties");

            properties.load(new BufferedInputStream(resource.openStream()));
            path = properties.getProperty("arqPath");
    }
       
}


//config.properties

arqPath="C:\meuFile"


Espero ter ajudado...

[]z


Graduado em Ciência da Computação pela Universidade Federal de Campina Grande
Carlos Trajano de Oliveira
Fones: 83 8867-8875
83 9911-5127


2008/7/28 Sebastião E. P. Rabelo Júnior <panm...@gmail.com>

Tux Slack

unread,
Jul 28, 2008, 1:26:57 PM7/28/08
to pb...@googlegroups.com
Carlos, deu certo seu exemplo... valeu...
mas agora fiquei pensando.. aumentou bem mais a complexidade do código quando era apenas uma String no parametro do RandomAccessFile(), será que vale a pena mesmo fazer isso? será uma boa prática?

Dúvidas:
Por que properties deve ser static final e inicializado num bloco static? Não posso fazer Properties p = new Properties() ?
Por que path deve ser static?

Obrigado.

2008/7/28 Carlos Trajano de Oliveira <carlos...@gmail.com>

Carlos Trajano de Oliveira

unread,
Jul 28, 2008, 1:40:59 PM7/28/08
to pb...@googlegroups.com
Opá Tux,

  Você poderia fazer Properties p = new Properties() apenas e não precisa estar dentro de um bloco static como no exemplo, estava assim pq no meu projeto eu precisava dos atributos estaticos e final.
   Bom quanto a complexidade não vai aumetar tanto assim, e vc ganhara a facilidade de alterar o path do arquivo no .properties e nao mais o .java, acho que vale a pena se vc for mudar mesmo o arquivo vez ou outra.

[]



Graduado em Ciência da Computação pela Universidade Federal de Campina Grande
Carlos Trajano de Oliveira
Fones: 83 8867-8875
83 9911-5127


2008/7/28 Tux Slack <slac...@gmail.com>

harlley

unread,
May 9, 2011, 12:02:41 PM5/9/11
to pb...@googlegroups.com

>> http://www.compose.ufpb.br/~sebastiao<http://www.compose.ufpb.br/%7Esebastiao>
>> http://sebastiaorabelo.wordpress.com
>>
>> >
>>
>
> --~--~---------~--~----~------------~-------~--~----~
> =================================================================
> Site: http://pbjug.org/
> Grupo: http://groups.google.com/group/pbjug
> -
> Para cancelar a sua inscrição neste grupo, envie um e-mail para
> pbjug-un...@googlegroups.com
> =================================================================
> -~----------~----~----~----~------~----~------~--~---
>
> oi bom dia! vi esse post, achei bem interessante, mas como eu faço para
> vincular esse arquivo a minha session ?
> pois preciso ler o arquivo do banco de dados externo ao .JAR.
> obrigado
>
>

--
View this message in context: http://old.nabble.com/Como-usar-arquivos-.properties---tp18693418p31578117.html
Sent from the PBJUG mailing list archive at Nabble.com.

Marcio Dorimar

unread,
May 9, 2011, 12:40:16 PM5/9/11
to pb...@googlegroups.com
exemplo sem usar caminho absoluto.
basta colocar o arquivo .properties dentro da pasta raiz código do sistema. normalmente, "src" ou "source".

package xxx;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ImpressoraProp {

    private static ImpressoraProp instance = null;
    private Properties props = null;

    public static final String IMPRESSORA_DES = "impressora.des";
    public static final String IMPRESSORA_HMG = "impressora.hmg";
    public static final String IMPRESSORA_PRD = "impressora.prd";

    public static final String IMPRESSORA_DES_TEMP = "impressora.des.temp";
    public static final String IMPRESSORA_HMG_TEMP = "impressora.hmg.temp";
    public static final String IMPRESSORA_PRD_TEMP = "impressora.prd.temp";

    public static final String IMPRESSORA_QTD_CENTRALIZADORA = "impressora.qtd.centralizadora";
   
    private ImpressoraProp() {
        props = new Properties();
        try {
            final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("impressora.properties");
            props.load(in);
        } catch (final FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (final IOException ex) {
            ex.printStackTrace();
        }
    }

    public static ImpressoraProp getInstance() {
        return instance == null ? instance = new ImpressoraProp() : instance;
    }

    public String getPropriedade(final String key) {
        return props != null && props.containsKey(key) ? props.getProperty(key) : null;
    }
}


2011/5/9 harlley <bash...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "PBJug" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para pb...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para pbjug+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/pbjug?hl=pt-BR.




--
Márcio Dorimar da Silva Gomes
FNDE/OEI - Brasília/DF
Graduado em Ciências da Computacao - DSC - UFCG

harlley

unread,
May 9, 2011, 12:55:36 PM5/9/11
to pb...@googlegroups.com

é porque uso hibernate, e preciso pegar a conexao do banco de dados vindo de
um arquivo externo, para que eu não tenha que ficar alterando toda hora
dentro da classe ai eu colocaria apenas a url depois passaria para meu
arquivo de hibernate.properties

Marcio Dorimar wrote:
>
> exemplo sem usar caminho absoluto.
> basta colocar o arquivo .properties dentro da pasta raiz código do
> sistema.
> normalmente, "src" ou "source".
>

> *package xxx;

> ** return instance == null ? instance = new ImpressoraProp() :
> instance;**


> }
>
> public String getPropriedade(final String key) {
> return props != null && props.containsKey(key) ?
> props.getProperty(key) : null;
> }

> }*

--
View this message in context: http://old.nabble.com/Como-usar-arquivos-.properties---tp18693418p31578609.html

Reply all
Reply to author
Forward
0 new messages