屬性類
Properties 物件是一個 Map, 其鍵和值按照約定為字串。儘管可以使用 Map 的方法來訪問資料,但通常使用更多型別安全的方法 getProperty , setProperty 和 stringPropertyNames 。
屬性經常儲存在 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 。