Properties类的特点和作用
Properties
类表示了一个持久的属性集。Properties
可保存在流中或从流中加载。属性列表以键值对形式存储,key和value都是字符串。- 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
- 只要配置文件以key=value的形式来作为属性列表,Properties都可以进行读写。而且现在Properties也支持XML文件了。
使用注意点
- Properties类实现了Map接口,可以使用put()来创建属性键值对,但因为允许放入不同类型key-value,尽量少使用,建议使用setProperty()。
- Properties是属于Map体系,所以Properties输出的属性列表是无序的。
- Properties输出属性列表有两种方法:list()和store(),store()方法的Stirng comments参数表示注释。当然也可以自己加注释,#注释语句。
- Properties通过流写入文件时,节点流默认对文件内容进行覆盖,根据需求来确定是否允许附加内容。
Properties类方法
Properties方法 | 作用描述 |
---|---|
String getProperty(String key) |
使用指定键获取对应的属性。 |
String getProperty(String key, String defaultValue) | 使用指定键获取对应的属性,找不到就使用默认值。 |
void list(PrintStream out) |
将属性列表输出到指定的打印输出字节流中。 |
void list(PrintWriter out) | 将属性列表输出到指定的打印输出字符流中。 |
void load(InputStream inStream) | 从指定字节输入流中读取属性列表(键值对)。 |
void load(Reader reader) | 以行的格式从输入字符流中读取属性列表(键值对)。 |
void loadFromXML(InputStream in) | 将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。 |
Object setProperty(String key, String value) | 以键值对形式来设置属性。 |
Enumeration<?> propertyNames() | 返回属性列表中所有键的枚举。 |
Set<String> stringPropertyNames() | 返回此属性列表中的键集。 |
void store(OutputStream out, String comments) | 将该Properties的属性列表(键值对)写入输出流。 |
void store(Writer writer, String comments) | 将Properties的属性列表(键值对)写入输出字符流。 |
void storeToXML(OutputStream os, String comment) | 输出一个包含所有属性的 XML 文档。 |
void storeToXML(OutputStream os, String comment, String encoding) | 使用指定编码输出一个包含所有属性的 XML 文档。 |