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

java Properties 类新手上路

2007-12-10 21:51 239 查看
Properties类
Properties 类已不是新东西了,它在 Java 编程的早期就有了,并且几乎没有什么变化。J2SE 的 Tiger 版本增强了这个类,不仅可以用它在单独一行中指定用等号分隔的多个键-值对,还可以用XML 文件装载和保存这些键-值对。在 驯服 Tiger的这一期文章中,John Zukowski 展示了如何驾驭这匹新一代的“役马”。请在本文对应的讨论论坛上与作者及其他读者分享您对本文的想法(您也可以单击文章顶部或底部的 讨论来访问该论坛)。

J2SE 1.5 以前的版本要求直接使用 XML 解析器来装载配置文件并存储设置。虽然这并非是一件困难的事情,并且解析器是平台的标准部分,但是额外的工作总是有点让人烦。最近更新的
java.util.Properties
类现在提供了一种为程序装载和存储设置的更容易的方法:
loadFromXML(InputStreamis)
storeToXML(OutputStream os, String comment)
方法。

Properties 基本知识
如果不熟悉
java.util.Properties
类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,如清单 1 所示。

清单 1. 一组属性示例

foo=bar
fu=baz

将清单 1 装载到
Properties
对象中后,您就可以找到两个键(
foo
fu
)和两个值(
foo
bar
fu
baz
)了。这个类支持带
/u
的嵌入 Unicode 字符串,但是这里重要的是每一项内容都当作
String


清单 2 显示了如何装载属性文件并列出它当前的一组键和值。只需传递这个文件的
InputStream
load()
方法,就会将每一个键-值对添加到
Properties
实例中。然后用
list()
列出所有属性或者用
getProperty()
获取单独的属性。

清单 2. 装载属性


import java.util.*;
import java.io.*;

public class LoadSample {
public static void main(String args[]) throws Exception {
Properties prop = new Properties();
FileInputStreamfis =
new FileInputStream("sample.properties");
prop.load(fis);
prop.list(System.out);
System.out.println("/nThe foo property: " +
prop.getProperty("foo"));
}
}

运行 LoadSample 程序生成如清单 3 所示的输出。注意
list()
方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。
Properties
类在一个散列表(hashtable,事实上是一个
Hashtable
子类)中储存一组键-值对,所以不能保证顺序。

清单 3. LoadSample 的输出

-- listing properties --
fu=baz
foo=bar

The foo property: bar

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: