Uma tarefa comum no desenvolvimento é a leitura de arquivos de configuração pela aplicação. A maioria das soluções lê o arquivo somente uma vez e carrega em memória, ou toda a vez que é chamado, ele carrega a leitura. Uma boa prática é ler somente o arquivo quando ele foi alterado. Dessa forma, quando houver uma alteração nesse arquivo conseguimos carregar os dados novos e quando não há alterações, não consumimos recursos.
Para fazer isso é só usar o método lastModified() da classe File, verificar se ele é o mais recente, se for, carregar o arquivo de properties. Segue o exemplo;
[sourcecode language=”java” highlight=”9″]
public class ConfigPropertiesUtil {
private static long lastModifiedDate = -1;
private static Properties properties = new Properties();
public static Properties getProperties() throws IOException,
FileNotFoundException {
File configFile = new File("/diretorio/config.properties");
if (configFile.lastModified() > lastModifiedDate) {
properties.clear();
properties.load(new FileInputStream(configFile));
lastModifiedDate = configFile.lastModified();
}
return properties;
}
}
[/sourcecode]
Agora é só criar o arquivo de configuração e toda a vez que ele for atualizado e você chamar o método getProperties() ele irá recarregar o arquivo, caso contrário, ele utilizará a versão já em memória.