Свойства в Java - мы можем иметь разделенные запятыми ключи с одним значением? - PullRequest
6 голосов
/ 01 февраля 2010

Я хочу иметь несколько ключей (> 1) для одного значения в файле свойств в моем Java-приложении. Один простой способ сделать определение каждого ключа в отдельной строке в файле свойств и одинаковое значение для всех этих ключей. Такой подход повышает удобство сопровождения файла свойств. Другой способ (который, я думаю, может быть разумным) - определить разделенные запятыми ключи со значением в одной строке например,

  key1,key2,key3=value

Java.util.properties не поддерживает это из коробки. Кто-нибудь делал подобную вещь раньше? Я сделал Google, но ничего не нашел.

- Маниш

Ответы [ 3 ]

5 голосов
/ 01 февраля 2010

Я не знаю о существующем решении, но оно должно быть достаточно простым для реализации:

String key = "key1,key2,key3", val = "value";
Map<String, String> map = new HashMap<String, String>();
for(String k : key.split(",")) map.put(k, val); 
System.out.println(map);
4 голосов
/ 01 февраля 2010

Одной из приятных особенностей файлов свойств является то, что они просты. Нет сложного синтаксиса для изучения, и они просты на глаз.

Хотите знать, какова стоимость имущества foo? Быстро сканируйте левый столбец, пока не увидите «foo».

Лично я бы смутился, если бы увидел такой файл свойств.

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

  • Открыть файл
  • Для каждой строки:
    • trim() пробел
    • Если строка пуста или начинается с #, перейдите на
    • Разделить на "=" (с ограничением на 2), оставив вас с ключом и значением
    • Разделить клавишу на ","
    • Для каждого ключа trim() его и добавьте его на карту вместе со значением trim() 'd

Вот и все.

2 голосов
/ 01 февраля 2010

Поскольку java.util.Properties расширяет java.util.Hashtable, вы можете использовать Properties для загрузки данных и последующей обработки данных.

Преимущество использования java.util.Properties для загрузки данных вместо того, чтобы катиться по собственному усмотрению, состоит в том, что синтаксис для свойств на самом деле довольно устойчивый , уже поддерживающий многие полезные функции, которые вам, возможно, придется в -implement (например, разделение значений по нескольким строкам, экранирование и т. д.).

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