【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/133935306
出自【进步*于辰的博客】
继承关系:
所有已实现的接口:
Serializable、Cloneable、Map
直接已知子类:
Provider
public class Properties extends Hashtable
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put() 和 putAll()。但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty() 。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store() 或 save() ,则该调用将失败。
load() 和 store() 按下面所指定的、简单的面向行的格式加载和存储属性。此格式使用 ISO 8859-1 字符编码。可以使用
U
n
i
c
o
d
e
转义符
\color{green}{Unicode 转义符}
Unicode转义符来编写此编码中无法直接表示的字符;转义序列中只允许单个 ‘u’ 字符。可使用
n
a
t
i
v
e
2
a
s
c
i
i
工具
\color{blue}{native2ascii 工具}
native2ascii工具对属性文件和其他字符编码进行相互转换。
loadFromXML(InputStream) 和 storeToXML(OutputStream, String, String) 按简单的 XML 格式加载和存储属性。默认使用 UTF-8 字符编码,但如果需要,可以指定某种特定的编码。XML 属性文档具有以下 DOCTYPE 声明:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
注意,导入或导出属性时不访问系统 URI (http://java.sun.com/dtd/properties.dtd);该系统 URI 仅作为一个唯一标识 DTD 的字符串:
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for properties -->
<!ELEMENT properties ( comment?, entry* ) >
<!ATTLIST properties version CDATA #FIXED "1.0">
<!ELEMENT comment (#PCDATA) >
<!ELEMENT entry (#PCDATA) >
<!ATTLIST entry key CDATA #REQUIRED>
从以下版本开始:
JDK1.0
另请参见:
native2ascii tool for Solaris、native2ascii tool for Windows、序列化表格
一个属性列表,包含属性列表中所有未找到值的键的默认值。
示例:
1、获取系统配置/属性的defaults。
Class z1 = Class.forName("java.util.Properties");
Field f1 = z1.getDeclaredField("defaults");
f1.setAccessible(true);
Properties p = (Properties) f1.get(System.getProperties());// null
2、将系统配置/属性作为defaults并获取。
Class z1 = Class.forName("java.util.Properties");
Field f1 = z1.getDeclaredField("defaults");
f1.setAccessible(true);
Properties p = new Properties(System.getProperties());
p = (Properties) f1.get(p);
for (Map.Entry<Object, Object> entry : p.entrySet())
sout entry;
打印结果同getProperties()中的示例,见System类的第2.8项。
综上示例,我暂不知此字段的具体作用。
创建一个无默认值的空属性列表。
说明:
先看源码。

底层调用下1项。
创建一个带有指定默认值的空属性列表。
说明:
看源码。

用指定的键在此属性列表中搜索属性。
说明:
先看源码。

关于get(),见父类的第3.9项;关于defaults,见第2.1项;关于getProperty(),是一次递归。
用指定的键在属性列表中搜索属性。
说明:
先看源码。

关于getProperty(),见上1项。
将属性列表输出到指定的输出流。
将属性列表输出到指定的输出流。
从输入流中读取属性列表(键和元素对)。
将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
已过时。 如果在保存属性列表时发生 I/O 错误,则此方法不抛出 IOException。保存属性列表的首选方法是通过 store(OutputStream out, String comments) 方法或 storeToXML(OutputStream os, String comment) 来进行。
调用 Hashtable 的方法 put。
以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
发出一个表示此表中包含的所有属性的 XML 文档。
使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。
如果大家需要Java-API文档,我上传了《Java-API文档-包含5/8/11三个版本》。
本文暂缓更新。