2013-07-22 2 views
0

Я ищу способ сохранить мои объекты в определенном порядке. Свойство-класс сохраняет значения несортированными:/ Для меня важно сохранить их в определенном порядке. Любой способ сделать это, сохранив его в формате XML с помощью storeToXML()? Я хочу их в том порядке, в котором я их вставил.Сохраните файл свойств 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

Вы можете расширить свойства и делегировать все методы карты LinkedHashMap, чтобы сохранить порядок вставки.
ссылке ниже полезно вам:
1. How to read a properties file in java in the original order

+1

Спасибо за ссылку. Это тоже возможность, но JAXB кажется проще. Интересно, почему Oracle не использует LinkedHashset:/ –

+1

@KevinKuegler Класс 'Properties' существует с тех пор, как Java 1.0 и там' Свойства' были сохранены только в текстовых файлах, где порядок не важен. Кроме того, Java 1.0 не имеет «LinkedHashMap». –

Смежные вопросы