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转义序列 

“中文” 转义为 u4E2Du6587

key u4E2Du6587

 

参考:http://www.766.com/doc/java/util/Properties.html#load(java.io.Reader)

原文地址:https://www.cnblogs.com/wavky/p/JAVA_Properties.html