Properties的使用
Properties类表示一组持久的属性。
Properties可以保存到流中或从流中加载。
属性列表中的每个键及其对应的值默认都是字符串。
他也是java集合框架中的一员
它继承了Hashtable,同时也实现了Map类
Properties对象的创建
public Properties()
创建一个没有默认值的空属性列表。
public Properties(Properties defaults)
创建具有指定默认值的空属性列表。
参数 :
defaults - 默认值。
//创建Properties
Properties prop = new Properties();
Properties常用命令使用
public Object setProperty(String key,String value)
修改指定key的值value
返回的值是Hashtable调用put的结果。
参数 :
key - 要放入此属性列表的关键字。
value - 对应的值为 key 。
结果:
此属性列表中指定键的上一个值,如果没有返回 null 。
public String getProperty(String key)
使用此属性列表中指定的键搜索属性。 如果在此属性列表中找不到该键,则会默认属性列表及其默认值递归。 如果找不到属性,该方法返回null 。
参数
key - 属性键。
结果
该属性列表中具有指定键值的值。
public String getProperty(String key,String defaultValue)
使用此属性列表中指定的键搜索属性。
如果在此属性列表中找不到该键,则会返回默认值参数。
参数
key - 属性键。
defaultValue - 默认值。
结果
该属性列表中具有指定键值的值。
public void load(Reader reader)
使用字符流读取Property
此方法返回后指定的流保持打开状态。
参数
reader - 输入字符流。
异常
IOException - 从输入流读取时是否发生错误。
IllegalArgumentException - 输入中是否出现格式错误的Unicode转义。
public void load(InputStream inStream)
从输入字节流读取Property
此方法返回后指定的流保持打开状态。
参数
inStream输入流。
异常
IOException - 从输入流读取时是否发生错误。
IllegalArgumentException - 如果输入流包含格式不正确的Unicode转义序列。
public void store(OutputStream out, String comments)
使用字节流保存 Properties
在写入条目之后,输出流被刷新。 此方法返回后,输出流保持打开状态。
参数
out - 输出流。
comments - 属性列表的描述。
异常
IOException - 如果将此属性列表写入指定的输出流,则会抛出一个 IOException 。
ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
NullPointerException - 如果 out为空。
public void loadFromXML(InputStream in)
将指定输入流中的XML文档表示的所有属性加载到此属性表中。
XML文档必须具有以下DOCTYPE声明:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
此外,文件必须满足上述性质DTD。
需要一个实现来读取使用“ UTF-8 ”或“ UTF-16 ”编码的XML文档。 实现可以支持额外的编码。
指定的流在此方法返回后关闭。
参数
in - 从中读取XML文档的输入流。
异常
IOException - 如果从指定的输入流读取导致 IOException 。
UnsupportedEncodingException - 如果文档的编码声明可以被读取,并指定不支持的编码
InvalidPropertiesFormatException - 输入流上的数据不构成具有强制文档类型的有效XML文档。
NullPointerException - 如果 in为空。
public void loadFromXML(InputStream in)
将指定输入流中的XML文档表示的所有属性加载到此属性表中。
XML文档必须具有以下DOCTYPE声明:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
此外,文件必须满足上述性质DTD。
需要一个实现来读取使用“ UTF-8 ”或“ UTF-16 ”编码的XML文档。 实现可以支持额外的编码。
指定的流在此方法返回后关闭。
参数
in - 从中读取XML文档的输入流。
异常
IOException - 如果从指定的输入流读取导致 IOException 。
UnsupportedEncodingException - 如果文档的编码声明可以被读取,并指定不支持的编码
InvalidPropertiesFormatException - 输入流上的数据不构成具有强制文档类型的有效XML文档。
NullPointerException - 如果 in为空。
public void store(Writer writer, String comments)
使用字符流保存 Properties
在写入条目之后,输出流被刷新。 此方法返回后,输出流保持打开状态。
参数
writer - 输出字符流写入器。
comments - 属性列表的描述。
异常
IOException - 如果将此属性列表写入指定的输出流,则会抛出一个 IOException 。
ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
NullPointerException - 如果 writer为空。
public void storeToXML(OutputStream os, String comment)
发出表示此表中包含的所有属性的XML文档。
这种props.storeToXML(os, comment)形式的方法的调用方式与调用props.storeToXML(os, comment, “UTF-8”);完全相同 。
参数
os - 发送XML文档的输出流。
comment - 属性列表的描述,如果没有就写 null 。
异常
IOException - 如果写入指定的输出流导致 IOException 。
NullPointerException - 如果 os为空。
ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
public void storeToXML(OutputStream os, String comment, String encoding)
使用指定的编码发出表示此表中包含的所有属性的XML文档。
XML文档将具有以下DOCTYPE声明:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
如果指定的注释是null则文档中不会存储注释。
需要一个实现来支持使用“ UTF-8 ”或“ UTF-16 ”编码的XML文档的写入。 实现可以支持额外的编码。
此方法返回后指定的流保持打开状态。
参数
os - 要在其上发出XML文档的输出流。
comment - 属性列表的描述,如果没有评论, null 。
encoding - 支持的名称 character encoding
异常
IOException - 如果写入指定的输出流导致一个 IOException 。
UnsupportedEncodingException - 如果实现不支持编码。
NullPointerException - 如果 os是 null ,或者如果 encoding是 null 。
ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。