package com.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
import org.apache.log4j.Logger;
/**
*
* 配置文件properties自动加载类
* @author heli
* @version 2012-6-5
* @see PropertiesAutoLoad
* @since
*/
public class PropertiesAutoLoad
{
/**
* Singleton
*/
private static final PropertiesAutoLoad AUTO_LOAD = new PropertiesAutoLoad();
/**
* Configuration
*/
private static PropertiesConfiguration propConfig;
/**
* 自动保存
*/
private static boolean autoSave = true;
/**
* properties文件路径
* @param propertiesFile
* @return
* @see
*/
public static PropertiesAutoLoad getInstance(String propertiesFile)
{
//执行初始化
init(propertiesFile);
return AUTO_LOAD;
}
/**
* 根据Key获得对应的value
* @param key
* @return
* @see
*/
public Object getValueFromPropFile(String key)
{
return propConfig.getProperty(key);
}
/**
* 获得对应的value数组
* @param key
* @return
* @see
*/
public String[] getArrayFromPropFile(String key)
{
return propConfig.getStringArray(key);
}
/**
* 设置属性
* @param key
* @param value
* @see
*/
public void setProperty(String key, String value)
{
propConfig.setProperty(key, value);
}
/**
* 设置属性
* @param map
* @see
*/
public void setProperty(Map<String, String> map)
{
for (String key : map.keySet())
{
propConfig.setProperty(key, map.get(key));
}
}
/**
* 构造器私有化
*/
private PropertiesAutoLoad()
{
}
/**
* 初始化
* @param propertiesFile
* @see
*/
private static void init(String propertiesFile)
{
try
{
propConfig = new PropertiesConfiguration(propertiesFile);
//自动重新加载
propConfig.setReloadingStrategy(new FileChangedReloadingStrategy());
//自动保存
propConfig.setAutoSave(autoSave);
}
catch (ConfigurationException e)
{
e.printStackTrace();
}
}
/**
* Test
* @param args
* @see
*/
public static void main(String[] args)
{
PropertiesAutoLoad pa = PropertiesAutoLoad.getInstance("config/log/fileNames.properties");
String [] fn = pa.getArrayFromPropFile("4");
StringBuffer sb = new StringBuffer();
for(String s : fn){
System.out.println(s);
sb.append(s+1+",");
}
pa.setProperty("1",sb.toString());
}
}
相关文章
- 从命令行启动Java程序出现“错误:找不到或无法加载主类“的解决办法
- Java 命令行运行java程序,出现“找不到或无法加载主类 ”的注意事项
- Java 命令行运行java程序,出现“找不到或无法加载主类 ”的注意事项
- 关于cmd 命令行运行java文件的错误:找不到或无法加载主类
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”
- 《深入理解java虚拟机》第七章读书笔记——虚拟机类加载机制
- 黑马程序员_Java高新技术(内省、注解、泛型、类加载器、代理)
- 黑马程序员_java高新技术(2)注解、泛型、类加载器
- 黑马程序员——java高新(枚举、内省、注解、类加载器)