2016-08-08 5 views
1

У меня есть код Java, который я сейчас запускаю как банку. Этот код проверяет конкретный файл в данном каталоге, который в настоящее время жестко закодирован в коде.Лучший способ получить значения из внешнего файла в java

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

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

+1

Да, файл свойств кажется разумным подходом к тому, что вы, кажется, задаете. –

+1

Вы попробовали? Если да, то что вы нашли? Какие-то проблемы? –

+0

Если «динамически» вы имеете в виду видеть измененные значения, когда кто-то модифицирует файл, то нет, вы не можете. Вам нужно будет реализовать это сами. –

ответ

0

В Java у вас есть java.util.Properties, который позволяет загружать плоские данные ключа/значения из внешних ресурсов.

Если вам нужно что-то, что может быть динамически обновлено, есть и более сложная библиотека Preferences. Это позволяет:

  1. Храните данные в древовидных структурах (это дерево узлов, каждый узел хранит свои собственные настройки ключа/значения).
  2. Используйте базовые типы (примитивные типы, строки и двоичные данные).
  3. Использовать независимые от платформы «родные» магазины прозрачно (под капотом он будет использовать файловую систему в системах Unix и реестрах в Windows по умолчанию).
  4. При необходимости подключите ваш собственный запасной магазин.
  5. Получать любые изменения данных, выполняемые в приложении, сохраняются прозрачно.
  6. Зарегистрируйте прослушиватели узлов/предпочтений и при необходимости отреагируйте на любые изменения.

API довольно старый и не обновлялся, но это не значит, что он устарел. Он используется в основном с графическими приложениями (в частности, IntelliJ IDEA сохранял свою конфигурацию с помощью Preferences в последний раз, когда я проверял).

Там также попытка возродить эту библиотеку, которую я сделал с проектом под названием cross-preferences путем интеграции современных распределенной конфигурации магазинов (например, Zookeeper, etcd или консул) в качестве бэк-магазинов для java.util.prefs.Preferences и предоставление веб консоль для управления предпочтениями.

+0

, если вы идете с подходом к файлу свойств, я думаю, что эти примеры хороши: https://www.mkyong.com/java/java-properties-file-examples/ – Jeutnarg

+0

@Jeutnarg - этот комментарий предназначен для меня или для OP? Я считаю, что это больше подходит по вышеуказанному вопросу. –

+0

вопрос заставляет меня думать, что OP понадобится несколько примеров кода, ваш ответ включает любой ответ, который я бы написал, и ваш ответ не содержал никакого кода. Поэтому я был бы не прав, если бы не оставил никакого кода, я был бы неправ, чтобы отвечать отдельно, и я был бы не прав, чтобы отредактировать ваш ответ.Учитывая это, я прокомментировал ссылку на хороший учебник для OP, если они используют ваш ответ. Прямой ответ на ваш вопрос, это для OP, но только если этот ответ тот, который они используют. – Jeutnarg

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