您的位置:首页 > 编程语言 > Java开发

JAVA集合学习之——Properties类

2015-07-13 10:11 218 查看
JAVA集合学习之——Properties类

关于Properties类,首先要知道,它从属于Hashtable类,所以他就具有Map集合的属性和方法。
它具有以下特点:
1. Properties相当于一个key,value都是String类型的Map。
2. 根据JDK文档所述:
Properties
类表示了一个持久的属性集。
Properties
可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。所以它有一些特有的方法。


一、首先进行简单的测试
public static void main(String[] args)
{
Properties p = new Properties();
p.put("001", "张三");
p.put("002", "李四");
p.put("003", "王二");

//获得Key Set
Set<Object> set = p.keySet();

for(Object s: set)
{
System.out.println(s + " --- " + p.get(s));
}
}
上面代码可以验证 Properties类是一个Map。

二、下面看看它的特殊使用
public static void main(String[] args) throws Exception
{
//创建一个Properties类的实例
Properties p = new Properties();

//设置参数
p.setProperty("username", "root");
p.setProperty("password", "123456");

//将集合中的key_value对写入文件
p.store(new FileOutputStream("D:\\test.txt"), "comment line");

//创建一个新的Properties类的实例
Properties p1 = new Properties();

//从流中加载属性
p1.load(new FileInputStream("D:\\test.txt"));

//下面代码说明Properties对像里的key_value是String类型
Set<String> set = p1.stringPropertyNames();
for(String s: set)
{
System.out.println(s + " --- " + p1.getProperty(s));
}

System.out.println("username: " + p1.getProperty("username"));
System.out.println("password: " + p1.getProperty("password"));
}
通常,Properties用于从配置文件中读取信息,比如,在JDBC的应用中,从配置文件中获得驱动,URL,UserName和Password。

Properties的常用方法总结:
1. 设置属性:Object setProperty(String key, String value) 调用 Hashtable 的方法 put。

2. 获得属性:String getProperty(String key) 用指定的键在此属性列表中搜索属性。

上面获得属性时要知道key的值,那key是怎么得来的呢,类似于Map的keySet方法返回key值的Set集合,这里要用专用的方法stringPropertiesName,故明思义,返回的是属性名字的字符串表示,实际上在配置文件中,通常是如下表示:
username="root"
password="123456"

对于流的获取和存储用下面两个方法:
void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。

void load(Reader reader) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。

void store(OutputStream out, String comments)

以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。

void store(Writer writer, String comments)

以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: