Свойства Java с параметрами - PullRequest
       0

Свойства Java с параметрами

1 голос
/ 03 августа 2011

Я только недавно узнал о классе Properties в java, и я пытаюсь перевести мой старый файл конфигурации, чтобы он был совместим с классом Properties.Я хочу знать, как лучше всего настроить файл свойств для чего-то вроде этого:

Object type1
name obj1
age age1

Object type2
name obj2
age age2

Я использовал пробелы, потому что я использовал сканер для анализа файла.Я бы создал список объектов, в котором хранятся разные объекты, и у каждого объекта есть определенные параметры, которые я получаю из файла конфигурации.Поэтому, читая файл, я получал свойства, создавал объект и сохранял в своем списке.

Я не хочу использовать XML для создания файла свойств.Я хочу, чтобы что-то простое для пользователя было создано и что-то, что я мог бы легко прочитать на Java.

Любые предложения?

РЕДАКТИРОВАТЬ : Я хочу попробовать получить что-тонет нумерации.Например, в XML вы можете сделать что-то вроде этого:

<table>
   <fields>
      <field>
         <type>type1</type>
      </field>
      <field>
         <type>type2</type>
      <field>
   </fields>
</table>

Очевидно, что было бы проще создать такой XML-файл, но я хочу реализовать не-XML-способ .

Ответы [ 3 ]

1 голос
/ 03 августа 2011

Ключи свойства должны быть уникальными. Я бы предложил использовать числовой инфикс.

field1.type = type1
field1.name = obj1
field1.age = age1

field2.type = type2
field2.name = obj2
field2.age = age2

Затем вы можете собрать их в инкрементный цикл следующим образом:

Properties properties = new Properties();
properties.load(input);
List<Field> fields = new ArrayList<Field>();

for (int i = 1; i < Integer.MAX_VALUE; i++) {
    String type = properties.getProperty("field" + i + ".type");
    if (type == null) break;
    String name = properties.getProperty("field" + i + ".name");
    String age = properties.getProperty("field" + i + ".age");
    fields.add(new Field(type, name, age));
}        

Не связано с конкретной проблемой, я уверен, что XML намного проще поддерживать и анализировать, например, с JAXB.

0 голосов
/ 03 августа 2011

Вы должны взглянуть на java.util.preferences API.

Preferences API - это иерархическая структура, которая позволит вам получить логическую группу данных, которые вы ищете.

Это гораздо более мощный и настраиваемый объект, чем старый Properties объект.

Есть множество учебных пособий о том, как его использовать.

Вы указываете PreferencesFactory реализацию , и она может хранить данные в любой форме и формате, которые вы пожелаете, даже в вашем предыдущем формате.

Импорт / Экспорт: простой способ переместить настройки вокруг

Посмотрим правде в глаза: API свойств ооочень прост, легок и удобен использовать. После того, как вы сохранили настройки в файле, вы можете отредактируйте их вручную, почтовый индекс, затем ftp или пошлите по электронной почте им так, Ваш бедный, замораживающийся коллега в центре обработки данных может запустить ваше приложение с исправьте настройки и уходите оттуда как можно скорее.

Вот как использовать Предпочтения с использованием файла в качестве резервного хранилища в формате файла свойств .

Так это все? Нет! Основываясь на том, что вы узнали из этой статьи, это не сложно придумать свой кроссплатформенный бэкэнд нейтральный редактор реестра, обеспечивающий легкий доступ к деревьям настроек на любой платформе - теперь, безусловно, лучше, чем ручное редактирование свойств файлы!

0 голосов
/ 03 августа 2011

это один из возможных способов,

type1.name = obj1
type1.age = age1

type2.name = obj2
type2.age = age2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...