Java的Properties使用及格式定义
java.util.Properties extends Hashtable<Object,Object>
方便读取 键值对 格式的文本资源工具
常用方法一览
初始化对象
new Properties();
加载文件
load(Reader/InputStream);
loadFromXML(InputStream);
获取键值
getProperty(String key): String
getProperty(String key, String defaultValue): String
插入键值
setProperty(String key, String value);
保存文件
store(OutputStream out, String comments);
store(Writer writer, String comments);
storeToXML(OutputStream os, String comment);
storeToXML(OutputStream os, String comment, String encoding)
打印列出所有键值对(开发测试用)
list(PrintStream/PrintWriter);
获取键表
propertyNames(): Enumeration // 相当于Iterator
stringPropertyNames(): Set<String>
Properties文本格式
- 以!或#开头的行将作为comment注释行
# this is a comment
! this is a comment
- 一行一个键值对
- 键值对以下面4种字符分隔:[=, :, 空格, tab制表符]
key:value
key=value
key value
key value
- [=, :]作为键字符,需要插入转移符 \
# 键为"key1:key2"
key1\:key2=value
# 键为"key1=key2"
key1\=key2=value
- 忽略所有非实际意义的空格和制表符
# 下面所有键值对格式意义相等
key=value
key = value
key :value
- 值过长时支持分行书写,在值末尾插入转移符 \
# 转移符 \ 后至下一有效值字符直接的所有空格将忽略不计
key = verylonglong\
longlonglong\
longlonglongvalue
- 值可不书写,视为空字符串
# 下面键key均关联到空字符串
key=
key
- 非ASCII字符需要使用Unicode转义序列
# “中文” 转义为 \u4E2D\u6587
key \u4E2D\u6587
参考:http://www.766.com/doc/java/util/Properties.html#load(java.io.Reader)