关闭

java.util 类 Properties

275人阅读 评论(0) 收藏 举报
分类:

类 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/webapps
root=/home/suguniang/webappsRoot
Path=/home/suguniang/webappsPath
ELEMENT=webapps
rootCLass=/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,value
			p.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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:428132次
    • 积分:6231
    • 等级:
    • 排名:第4467名
    • 原创:228篇
    • 转载:106篇
    • 译文:0篇
    • 评论:57条
    博客专栏
    最新评论