属性类

Properties 对象是一个 Map, 其键和值按照约定为字符串。尽管可以使用 Map 的方法来访问数据,但通常使用更多类型安全的方法 getPropertysetPropertystringPropertyNames

属性经常存储在 Java 属性文件中,这些文件是简单的文本文件。它们的格式在 Properties.load 方法中有详细记录 。综上所述:

  • 每个键/值对是一行文本,在键和值之间有空格,等于(=)或冒号(:)。等号或冒号可以在其之前和之后具有任何数量的空格,这将被忽略。
  • 始终忽略前导空格,始终包含尾随空格。
  • 反斜杠可用于转义任何字符(小写 u 除外)。
  • 该行末尾的反斜杠表示下一行是当前行的延续。但是,与所有行一样,将忽略连续行中的前导空格。
  • 就像在 Java 源代码中一样,\u 后跟四个十六进制数字代表 UTF-16 字符。

大多数框架,包括 Java SE 自己的工具,如 java.util.ResourceBundle,将属性文件加载为 InputStreams。从 InputStream 加载属性文件时,该文件可能只包含 ISO 8859-1 字符(即 0-255 范围内的字符)。任何其他字符必须表示为\u escapes。但是,你可以使用任何编码编写文本文件,并使用 native2ascii 工具(随每个 JDK 一起提供)来为你进行转义。

如果要使用自己的代码加载属性文件,则可以使用任何编码,只要你基于相应的 Charset 创建 Reader(例如 InputStreamReader )即可。然后,你可以使用 load(Reader) 而不是传统加载(InputStream)方法加载文件。

你还可以将属性存储在一个简单的 XML 文件中,该文件允许文件本身定义编码。这样的文件可以使用 loadFromXML 方法加载。描述此类 XML 文件结构的 DTD 位于 http://java.sun.com/dtd/properties.dtd