2013-07-22 35 views
0

我正在尋找一種方法以特定順序保存我的屬性。 Property-class保存未排序的值:/ 對於我來說,將它們保存爲特定順序非常重要。使用storeToXML()將其保存爲XML格式時執行此操作的任何方法?我希望他們按照我插入的順序排列。將Java屬性文件按特定順序保存爲XML格式

例如:

put("Name","Frost"); 
put("Surname","Byte"); 
put("Age","18"); 
put("Country","Germany"); 

被存儲在這個順序:

<entry key="Name">Frost</entry> 
<entry key="Country">Germany</entry> 
<entry key="Surname">Byte</entry> 
<entry key="Age">18</entry> 

任何想法?

回答

1

Properties是實現此目的的錯誤方法。 Properties延伸Hashtable這是一個HashMap,因此不保留您插入的屬性的順序。

您必須使用其他技術來編寫具有特定順序的XML文件。例如。您可以使用JAXB直接從涉及的對象創建XML文件。

+0

嗯,我會看看JAXB。謝謝:) 在Vogella的教程似乎很容易http://www.vogella.com/articles/JAXB/article.html那些誰有同樣的問題; D –

0

您可以擴展Properties並將所有映射方法委託給LinkedHashMap以保持插入順序。
以下鏈接是對你有用:
1. How to read a properties file in java in the original order

+1

感謝您的鏈接。這也是一種可能性,但JAXB似乎更容易。 我想知道爲什麼Oracle不使用LinkedHashset:/ –

+1

@KevinKuegler自從Java 1.0版本開始,Properties屬性就已經存在了,並且'Properties'只被保存在純文本文件中,其順序並不重要。另外Java 1.0沒有'LinkedHashMap'。 –