Properties类学习笔记

1.Properties是一个hashTable子类,但它只装String类型的值
2.一个Properties集中有一个子Properties集为它的默认属性集,如果在Properties中找不到相关的property,则会到默认集中找
3.Properties不建议使用父类的put/putAll方法,因为可能会将非String类型的值插入属性集中,取而代之,应该用setProperty方法
4.因为Properties继承自HashTable,所以它是线程安全的,当多个线程访问它时,不需要额外的同步操作
其中包含的字段和方法:
1.protected字段Properties defaults; 默认属性集(子属性集),如果在主属性集中没有找到相应的key-value,则在此中找
2.无参构造器
3.带默认集参数的构造器

9.私有方法loadConvert 加载时转换,供load0方法调用,目的是转换编码和复原转义的特殊字符
10.私有方法saveConvert 保存时转换,供store0方法调用,目的同上

11.私有静态方法writeComments 供store0方法调用

5.同步的方法load(reader) 从字符流中加载一组属性
6.同步的方法load(inputStream) 从字节流中加载一组属性
7.私有方法load0 供两个load方法调用的加载属性的方法
8.内部类LineReader 供load0方法调用,目的是从字节流/字符流中读取逻辑行
12.方法store 将属性列表写入到字符输出流中
13.方法store 将属性列表写入到字节输出流中
14.私有方法store0 供上述两个store方法调用,实际执行的方法

4.同步的方法setProperty 设置属性值,只允许String类型的键和String类型的值
18.方法getProperty 根据key获取属性值
19.方法getProperty 根据key获取属性值,如果没有,则返回一个默认值

20.方法propertyNames 返回所有键的枚举,包括主集和子集
21.方法stringPropertyNames 返回所有键的set集合,包括主集和子集

22.方法list 将属性列表打印到字节输出流中
23.方法list 将属性列表打印到字符输出流中

24.同步的方法enumerate 将指定的hashTable枚举化
25.同步的方法enumerateStringProperties 将指定的hashTable枚举化,但是排除非String类型的键值对

26.私有静态方法toHex 将int类型转换为16进制(原理:与'0xF'做按位与运算)

27.私有静态常量字符数组 包含16进制中的0-16

15.同步的方法loadFromXML 从输入流中的xml文件中加载属性列表
16.方法storeToXML 将属性列表写入到xml文件中
17.方法storeToXML 以指定编码将属性列表写入到xml文件中
28.私有静态内部类XmlSupport 供loadFromXML和storeToXML方法调用

总结:

1.Properties类是一个继承了HashTable的只能装String类型数据的集合,因为HashTable是线程安全的,所以Properties也是线程安全的

2.Properties类中有一个很重要的字段defaults,它也是Properties类型,两者是主次关系,找属性的时候先从主Properties找,然后从次Properties中找.

3.Properties是操作属性的专门类,可以从字节流,字符流,xml文件中加载/保存属性.

4.Properties中toHex方法通过将int类型数据与0xF做按位与运算,得到int数据的16进制.

原文地址:https://www.cnblogs.com/wangxuejian/p/10596970.html