在开发中,总是会将系统相关参数信息统一放到配置文件中,便于设置管理,于是选择较为简单的java.util.Properties
介绍
Properties继承自Hashtable,用JDK里面的话说,"Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。" 通过它,我们可以很方便的操作.properties、.xml等文件
使用
void list(PrintString out) //将属性列表输出到指定的输出流。
void list(PrintWriter out) //将属性列表输出到指定的输出流。
void load (InputStream inStream) //从输入流中读取属性列表(键和元素对)。
void load(Reader reader) //按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void loadFromXML(InputStream in) //将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
void store(OutputStream out,String comments) //以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
void store(Writer writer,String comments) // 以适合使用load(Reader)方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
void storeToXML(OutputStream os,String comments) //发出一个表示此表中包含的所有属性的 XML 文档。
void storeToXML(OutputStream os,String comments,String encoding) //使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。
例如,使用load(InputStream inStream) 读取属性列表
现有config.properties文件存于classes下,内容为:
sys_user=admin
sys_user_password=admin 首先创建Properties对象
Properties prop = new Properties();读取输入流 prop.load(this.getClass().getClassLoader().getResourceAsStream("config.properties")); 获取属性值
String getProperty(String key) //根据key获取属性值prop.getProperty("sys_user");//返回"admin"
prop.getProperty("sys_user_password");//返回"admin" String getProperty(String key,String defaultStr) //根据key获取属性值,如果没有对应属性,返回默认值
prop.getProperty("sys_user_nickname","未定义");//此时返回"未定义"设置属性值 Object setProperty(String key,String value) //返回属性列表中指定键的旧值,如果没有值,则为 null。
Properties继承自Hashtable,调用setProperty方法时,会调用父类的put方法,源码如下:
public synchronized Object setProperty(String key, String value) {
return put(key, value);
}使用: prop.setProperty("sys_user_password","123456"); 




还没有评论,来说两句吧...