JAVA Properties使用

来源:互联网 发布:linux文件指针file 编辑:程序博客网 时间:2024/06/14 17:06

在开发中,总是会将系统相关参数信息统一放到配置文件中,便于设置管理,于是选择较为简单的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=adminsys_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");


Properties常用的就几个方法,也能实现我们对管理项目属性列表的功能,其也从Hashtable继承了较多的方法,包括put、putAll、remove等等。具体情况请查阅JDK API



0 0