У меня есть список пар ключ / значение значений конфигурации, которые я хочу сохранить в виде файлов свойств Java, а затем загрузить и выполнить итерацию.
Вопросы:
- Нужно ли хранить файл в том же пакете, что и класс, который будет их загружать, или есть какое-то конкретное место, где он должен быть размещен?
- Должен ли файл заканчиваться каким-либо конкретным расширением или все в
.txt
порядке? - Как я могу загрузить файл в коде
- И как я могу перебрать значения внутри?
java
properties
Нажмите Upvote
источник
источник
null
. См. Javadocproperties.load(PropertiesReader.class.getResourceAsStream("/properties.properties"));
этим, поgetResourceAsStream
сравнению сFileInputStream
? плюсы и минусы?Вы можете хранить файл где угодно. Если вы хотите сохранить его в своем JAR-файле, вы захотите использовать его
Class.getResourceAsStream()
илиClassLoader.getResourceAsStream()
получить к нему доступ. Если это в файловой системе, это немного проще.Любое расширение в порядке, хотя .properties чаще встречается в моем опыте
Загрузите файл , используя
Properties.load
, переходящий вInputStream
илиStreamReader
если вы используете Java 6. (Если будут с помощью Java 6, я бы , вероятно , использовать UTF-8 , иReader
вместо того , чтобы по умолчанию ISO-8859-1 кодирования для потока. )Итерируйте по нему так же, как и по нормальному
Hashtable
(которыйProperties
происходит от), например, используяkeySet()
. Кроме того, вы можете использовать перечисление, возвращаемоеpropertyNames()
.источник
Если вы поместите файл свойств в тот же пакет, что и класс Foo, вы можете легко загрузить его с помощью
Учитывая, что Properties расширяет Hashtable, вы можете перебирать значения таким же образом, как и в Hashtable.
Если вы используете расширение * .properties, вы можете получить поддержку редактора, например, Eclipse имеет редактор файлов свойств.
источник
Существует много способов создания и чтения
properties
файлов:.properties
расширение, однако вы можете выбрать свой собственный.java.util
пакете =>Properties
,ListResourceBundle
,ResourceBundle
классы.Properties
илиjava.lang.System
.ResourceBundle
класс:Properties
класс:источник
.properties
только расширение? что не так с расширением .txt? пожалуйста, помогите мне.Это загрузить файл свойств:
Я использую, чтобы поместить файл .properties в каталог, где у меня есть все файлы конфигурации, я не помещаю его вместе с классом, который обращается к нему, но здесь нет никаких ограничений.
Для имени ... Я использую .properties для многословия, я не думаю, что вы должны назвать его .properties, если вы не хотите.
источник
Пример:
источник
Свойства стали наследием. Предпочтения класса предпочтительнее свойства.
В отличие от свойств, которые представляют собой пары ключ-значение на основе строк, в
Preferences
классе есть несколько методов, используемых для получения и размещения примитивных данных в хранилище данных Preferences. Мы можем использовать только следующие типы данных:Чтобы загрузить файл свойств, вы можете указать абсолютный путь или использовать,
getResourceAsStream()
если файл свойств присутствует в вашем пути к классам.XML-файл:
Посмотрите на эту статью о внутреннем магазине предпочтений
источник
Для того, чтобы:
источник
2. no extension is necessary
Можете ли вы дать мне любую ссылку для этого заявления, пожалуйста. Я путаюсь с этим.По умолчанию Java открывает его в рабочем каталоге вашего приложения (это поведение зависит от используемой ОС). Чтобы загрузить файл, выполните:
Таким образом, любое расширение файла может быть использовано для файла свойств. Кроме того, файл также может храниться где угодно, если вы можете использовать
FileInputStream
.Если вы используете современную платформу, она может предоставить дополнительные способы открытия файла свойств. Например, Spring предоставляет
ClassPathResource
загрузку файла свойств с использованием имени пакета из файла JAR.Что касается итерации по свойствам, то после загрузки свойств они сохраняются в
java.util.Properties
объекте, который предлагаетpropertyNames()
метод.источник
Чтение файла свойств и загрузка его содержимого в
Properties
Ниже приведен эффективный способ перебора
Properties
источник
В Java 8, чтобы получить все ваши свойства
источник
1) Хорошо иметь файл свойств в classpath, но вы можете разместить его в любом месте проекта.
Ниже описано, как загрузить файл свойств из classpath и прочитать все свойства.
2) Файлы свойств имеют расширение .properties
источник
Вот еще один способ перебрать свойства:
источник
Я написал об этой структуре собственности за последний год. Это обеспечит несколько способов загрузки свойств, а также их строгую типизацию.
Посмотрите на http://sourceforge.net/projects/jhpropertiestyp/
JHPropertiesTyped предоставит разработчику строго типизированные свойства. Легко интегрировать в существующие проекты. Обрабатывается большой серией для типов свойств. Предоставляет возможность инициализации свойств в одну строку с помощью реализаций ввода-вывода свойств. Дает разработчику возможность создавать собственные типы свойств и свойства io's. Веб-демо также доступна, скриншоты показаны выше. Также есть стандартная реализация веб-интерфейса для управления свойствами, если вы решите использовать его.
Полная документация, учебник, javadoc, faq и т. Д. Доступны на веб-странице проекта.
источник
Здесь готов статический класс
Вот образец:
источник
Вы можете загрузить файл свойств следующим образом:
И затем вы можете перебрать карту с помощью лямбда-выражения, например:
источник
на мой взгляд, другие способы устарели, когда мы можем сделать это очень просто, как показано ниже:
это так просто, но я думаю, что это лучший способ! наслаждаться
источник