首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 5 新特性:Properties 原生支援 XML 載入與儲存,告別手寫解析器

     編輯:Java 程式設計入門

Properties 類的進化

java.util.Properties 陪伴 Java 多年,Java 5 (Tiger) 為其注入兩大強化:

  1. 單行支援多組 key=value(以分隔符分割)
  2. 原生 XML 載入/儲存:loadFromXML(InputStream) / storeToXML(OutputStream, String)

無需再引入 DOM/SAX 解析器處理配置文件,標準庫一行搞定。

傳統屬性文件格式

foo=bar
fu=baz

載入範例:

Properties prop = new Properties();
try (FileInputStream fis = new FileInputStream("sample.properties")) {
    prop.load(fis);
}
System.out.println(prop.getProperty("foo")); // bar

注意:Properties 繼承 Hashtable,**順序不保證**。

XML 屬性文件:標準 DTD 定義

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "https://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
    <comment>配置文件說明</comment>
    <entry key="foo">bar</entry>
    <entry key="fu">baz</entry>
</properties>
  • 根元素 <properties>,屬性 version="1.0" 固定
  • 可選 <comment>,多個 <entry key="...">value</entry>
  • 支援 Unicode、特殊字符、多行值(CDATA)

XML 載入/儲存實戰

// 載入 XML
Properties prop = new Properties();
try (FileInputStream fis = new FileInputStream("config.xml")) {
    prop.loadFromXML(fis);
}

// 儲存為 XML
try (FileOutputStream fos = new FileOutputStream("config.xml")) {
    prop.storeToXML(fos, "應用配置 - 自動生成");
}

優勢總結

維度傳統 .propertiesXML 格式
結構表達扁平鍵值層次化、可嵌套註釋
編碼處理ISO-8859-1 需轉義原生 UTF-8/指定編碼
工具支援文本編輯器XML 編輯器、Schema 驗證、XSLT 轉換
程式碼量手寫解析器零代碼(兩行 API)

適用場景建議

  • 簡單配置、屬性少、頻繁人工編輯 → .properties
  • 結構複雜、需國際化、工具鏈集成、版本管控 → .xml

Java 5 讓配置管理更標準、更強大,升級專案時別忘了遷移舊配置!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved