Olá gente, gostaria de ler parâmetros de um arquivo ini. Hoje meu código consegue ler linha a linha do arquivo que contem diretorios e outros parâmetros, porém gostaria de refinar estas informações para serem enviadas para ouras classes.
Como o arquivo .ini é um formato proprietário do Windows, você tem algumas formas para resolver isto, todas direcionadas para essa arquitetura proprietária:
usar o JNI para chamar as APIs do Windows como GetPrivateProfileString que podem ler seções e entradas específicas deste .ini; existe um componente chamado jniwrapper que facilita a interface a essas chamadas de APIs Windows, mas ele é pago, não sei se existe algo free - mas essa creio que seria a saída mais rápida;
abrir o arquivo como uma InputStream ler o seu contéudo e montar um parser para identificar seções e entradas do arquivo ini, mas essa saída pode ser extremamente trabalhosa;
Se não me engano existem componentes prontos para ler arquivos ini no java, dá uma procurada no google, você deve achar alguma coisa.
Se você precisar de uma lista de APIs do Windows para ler inis, me avise, eu posto algo aqui.
Abraço!
E
entanglement
A forma padrão de ler configurações em um programa Java é usar um arquivo “.properties”. Embora não tenha exatamente os mesmos recursos de um arquivo “.ini”, se for o que estou pensando, é suficiente.
Exemplo de um arquivo .properties:
# exemplo de um comentariousuario=abiliosenha=dasilvahost=123.45.67.89texto.longo=seprecisarescreveruma\
configuracaocomprida,escreva-aemvarias\
linhas,terminandocadalinhacomumacontra-barra.
Note que não há grupos como nos arquivos .ini, nem é possível gravar dados binários como em arquivos .ini, ou então atualizar um arquivo .properties de maneira simples. Mas normalmente isso é suficiente.
P
paulorf1971
Entanglement,
O problema é que arquivos ini tem uma estrutura completamente diferente de arquivos .properties. Eles tem seções de informações, de certa forma ele está estruturalmente muito mais para um arquivo xml do que para um .properties. Um exemplo:
[Seção 1]
informacao1=valor1
informacao2=valor2
[Seção 2]
informacao1=valor1
informacao2=valor2
Por essa razão a estrutura
informacao=valor
dos arquivos .properties é incompatível com a dos arquivos inis.
P
paulorf1971
A propósito, pode até funcionar. Mas é uma baita gambi!!!
E
entanglement
Eu sei direitinho disso - a estrutura de um arquivo .ini tem 2 níveis - grupos e pares chave-valor. Para simular isso, pode-se fazer uma de duas coisas:
a) Acrescentar a informação de seção ao nome de cada chave. É meio porco mas costuma funcionar bem - só não se esquecer que, diferentemente do Windows, os nomes de chaves não ignoram a diferença entre minúsculas e maiúsculas.