UdeProperties 檔案擴充功能
針對一般Java常用的properties檔案格式,UDE有一些提升便利性的擴充修改。 設計以 properties 存放設定值的元件時,可以更有彈性。
檔案編碼預設採用UTF8。
只要編碼正確,使用一般文字編輯器也可以編輯,無需強制使用native2ascii工具或特殊編輯工具處理。
保留 KEY 值順序,可依檔案內容順序列出KEY值。
支援同一KEY對應到多個值。
- 在標準properties檔案格式下,若KEY值重複,只有一筆資料會保留。
- UdeProperties 可使用 getPropertyList(…)取得列表LIST。
- 也可以將同一設定值中的項目以指定分割字元切開讀取。
# list.properties
keyA=a1
keyA=a2
keyA=a3
# 多個連續分割字元視為一個,分割字元需於傳入參數指定。
keyB=b1,,,b2 b3
# 可併用
keyC=c1,c2
keyC=c3
assertEquals(Arrays.asList("a1", "a2", "a3"), properties.getPropertyList("keyA"));
assertEquals(Arrays.asList("b1", "b2", "b3"), properties.getPropertyList("keyB", ", "));
assertEquals(Arrays.asList("c1", "c2", "c3"), properties.getPropertyList("keyC", ", "));
以MAP方式讀取具有相同PREFIX的KEY值。
使用巢狀結構定義設定檔時,可一次讀取所有相關設定。
在getPropertyMap(key) 的指定名稱之後,若接續一個「.」,則後面的文字為SUBKEY,即回傳MAP中的KEY值。若有項目與指定名稱同名,則回傳MAP中的對應KEY值為空字串。
此時不支援LIST格式,如確知某一項目會是LIST資料,需另行以getPropertyList讀取。
key=SAMPLE
key.A=a1
key.B=b1
key.B=b2
key.C=c1
key.D.1=d1
//
key2=NOT
// {=SAMPLE, A=a1, B=b2, C=c1, D.1=d1}
Map<String, String> map = properties.getPropertyMap("key");