java.util 类 Properties

来源:互联网 发布:淘宝店网 编辑:程序博客网 时间:2024/05/14 07:32

类 Properties

        Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

        因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用putputAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是String 的项。相反,应该使用setProperty 方法。如果在“不安全”的Properties 对象(即包含非String 的键或值)上调用storesave 方法,则该调用将失败。类似地,如果在“不安全”的Properties 对象(即包含非String 的键)上调用propertyNameslist 方法,则该调用将失败。

         load(Reader) / store(Writer, String) 方法按下面所指定的、简单的面向行的格式在基于字符的流中加载和存储属性。除了输入/输出流使用 ISO 8859-1 字符编码外,load(InputStream)/ store(OutputStream, String) 方法与 load(Reader)/store(Writer, String) 对的工作方式完全相同。可以使用 Unicode 转义来编写此编码中无法直接表示的字符;转义序列中只允许单个 'u' 字符。可使用 native2ascii 工具对属性文件和其他字符编码进行相互转换。

         loadFromXML(InputStream) 和 storeToXML(OutputStream, String, String) 方法按简单的 XML 格式加载和存储属性。默认使用 UTF-8 字符编码,但如果需要,可以指定某种特定的编码。

下面我们就进行简单的使用

假设我们有一个config.properties,内容如下所示,我们想要根据需要从其中取出内容:

rootPath=/home/suguniang/webappsroot=/home/suguniang/webappsRootPath=/home/suguniang/webappsPathELEMENT=webappsrootCLass=/home/suguniang/webappsRootClass
我们可以如下实现:

package com.test.utils;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class ConfigUtils {private static Properties p;static {InputStream in=null;p=new Properties();try {//读了xx.properties文件in=ConfigUtils.class.getResourceAsStream("config.properties");//放置到p中,即放properties文件中的key,valuep.load(in);} catch (IOException e) {e.printStackTrace();}finally{if(in!=null)try {in.close();} catch (IOException e) {e.printStackTrace();}}}public static String getConfigValue(String config){ return p.getProperty(config);}public static void main(String[] args) {//输出测试//Properties p=new Properties();//p.setProperty("rootPath","ddd");//System.out.println(p.get("rootPath"));System.out.println(getConfigValue("rootPath"));}}
如下,当我们使用静态的getConfigValue("rootPath")时,我们能够获取如下内容:

既然能够从本文件中获取键值,那么我们就能够在使用的时候灵活的获取,比如作为简单配置文件,系统占用的端口等

1 0