[深入了解Java集合框架]-Properties的使用

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键或值。

发布了65 篇原创文章 · 获赞 57 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_18604209/article/details/104376981