-
pacote teste.bwl;
importar java.io.FileNotFoundException;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Properties;
teste de classe pública {
propriedades estáticas privadas propriedades = novas propriedades();
public static void main(String[] args) {
tentar {
InputStream é = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propriedades.load(é);
Tamanho da string = propriedades.getProperty("cache.size");
writeLog("配置成功!" + tamanho);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog (String strLog) {
System.out.println(strLog);
}
}
pacote teste.bwl;
importar java.io.FileNotFoundException;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Properties;
teste de classe pública {
propriedades estáticas privadas propriedades = novas propriedades();
public static void main(String[] args) {
tentar {
InputStream é = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propriedades.load(é);
Tamanho da string = propriedades.getProperty("cache.size");
writeLog("配置成功!" + tamanho);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog (String strLog) {
System.out.println(strLog);
}
}
pacote teste.bwl;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileNotFoundException;
importar java.io.FilenameFilter;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Collections;
importar java.util.HashMap;
importar java.util.Map;
importar java.util.Properties;
importar java.util.regex.Pattern;
/**
* 配置信息管理器
*
* @autor bwl
*@versão 1.0
*/
classe pública ConfigManager {
/**
* 提供单例对象的静态内部类
*/
classe estática privada SingletonHolder {
instância pública estática do ConfigManager = novo ConfigManager();
}
/**
* 获取对象实例
* @retornar
*/
public static ConfigManager getInstance() {
retornar SingletonHolder.instance;
}
/**
* 存储问题列表的Mapa
*/
private Map<String, Propriedades> name2properties;
/**
* 构造方法, 请使用getInstance() é o exemplo
*/
privateConfigManager() {
name2properties = Collections.synchronizedMap(new HashMap<String, Propriedades>());
doInit();
}
/**
* 初始化方法
*/
private void doInit() {
tentar {
Caminho do arquivo = new Arquivo("./conf/");
if (!path.exists()) {
System.out.println("Erro de inicialização do ConfilgManager: Não há nenhuma pasta chamada 'conf' no arquivo src.");
retornar;
}
Arquivo[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
Arquivo f = confArquivos[i];
if (f.exists() && f.isFile()) {
Propriedades propriedades = new Propriedades();
InputStream é = novo FileInputStream(f);
propriedades.load(é);
nome2properties.put(f.getName(), propriedades);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* @param chave
* @return
*/
public String getProperty(String nomeArquivo, String chave) {
if (nomedoarquivo == nulo || nomedoarquivo.comprimento() == 0) {
retornar nulo;
}
Propriedades prop = name2properties.get(fileName);
if (prop! = nulo) {
retornar prop.getProperty(chave);
}
retornar nulo;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName Nome da chave
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty(String nomeArquivo, String chave) {
Valor da string = this.getProperty(fileName, chave);
resultado interno = -1;
if (valor == nulo) {
resultado de retorno;
}
tentar {
resultado = Integer.parseInt(valor);
resultado de retorno;
} catch (Exceção e) {
//Não faça nada
}
resultado de retorno;
}
/**
* 过滤属性文件的内部类
*/
class DirFilter implementa FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
padrão padrão privado;
public DirFilter(String regex) {
padrão = Padrão.compile(regex);
}
public boolean aceitar(Diretório do arquivo, String nome) {
retornar padrão.matcher(novo arquivo(nome).getName()).matches();
}
}
public static void main(String[] args) {
Configuração do ConfigManager = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "nome_ônibus") + "");
}