Конфигурация конфигурации apache commons до символа ","

Я хочу загрузить конфигурацию (конфигурацию apache commons) из файла свойств. Моя программа:

PropertiesConfiguration pc = new PropertiesConfiguration("my.properties");
System.out.println(pc.getString("myValue"));

В my.properties у меня есть

 myValue=value,

с запятой

Когда я запускаю программу, выход value, а не value, with comma. Похоже, что значение загружается до символа ,.

Любые идеи?

Ответ 1

Проверьте Javadoc. Вы должны установить setDelimiterParsingDisabled (true), чтобы отключить анализ списка свойств.

Ответ 2

Это поведение четко задокументировано, то есть, что PropertiesConfiguration обрабатывает значение с запятой как несколько значений, допускающих такие вещи, как:

fruit=apples,banana,oranges

интерпретировать разумно. Исправление (из документа) заключается в добавлении обратной косой черты для экранирования запятой, например,

myKey=value\, with an escaped comma

Ответ 3

Фактически propConfig.setDelimiterParsingDisabled(true) работает, но после этого параметра вы должны загрузить файл конфигурации, например:

propConfig = new PropertiesConfiguration();
            propConfig.setDelimiterParsingDisabled(true);
            propConfig.load(propertiesFile);

если ваш код похож:

propConfig = new PropertiesConfiguration (propertiesFile);       propConfig.setDelimiterParsingDisabled(истина);

тогда настройка не будет работать

Ответ 4

PropertiesConfiguration интерпретирует ',' как разделитель значений.

Ответ 5

Если вы поместите \ перед ,, вы избежите его, и вы можете прочитать значение

Пример:

myValue=value\, with comma

Вы читаете = value, with comma без проблем