Прочитайте строку из файла и загрузите ее в актуальную конфигурацию

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

Можно ли добавить пользовательский ключ/значение после загрузки конфигурации? Например:

config.add("key", "value")


person Raxkin    schedule 28.02.2017    source источник


Ответы (1)


Вы можете сделать это, используя #withFallback:

// Assuming this is your first config file
val default = ConfigFactory.load("application.conf")

// Now we add the second one
val updated = default.withFallback(ConfigFactory.load("foo.conf"))

Или, предполагая, что вы прочитали line в другом месте как значение, используйте тот же метод, но проанализируйте конфигурацию из строки напрямую, используя ConfigFactory#parseString:

val default = ConfigFactory.load("application.conf")
val updated = default.withFallback(ConfigFactory.parseString(s"key = $value"))
person Andrei T.    schedule 28.02.2017
comment
Но я не хочу загружать другой файл конфигурации, я просто хочу добавить строку внутри файла к значению фактической конфигурации. С вашим методом он загружает файл конфигурации, не так ли? В моем файле нет никакой структуры конфигурации, только значение. В случае, если я могу сделать это с помощью простого значения внутри файла, как я могу получить доступ к этому значению? - person Raxkin; 28.02.2017
comment
Как я могу получить доступ к значению из parseString (строки)? Думаю, я плохо объяснил. В файле есть только значение, нет никакого ключа-значения, просто значение. Ej: 1234 и я хочу добавить в конфиг атрибут типа "password": 1234 - person Raxkin; 28.02.2017