Как использовать файлы свойств Java?

На вершине моей головы:

  • его распределенный аспект (у каждого разработчика есть копия репозитория)
  • способность обработать сложные слияния очень быстро
  • возможность переключиться от задачи до задачи, отложить его работу, возвращается к нему...
  • дешевое ветвление (мгновенный переключатель: это просто пишет несколько битов в файле! И это не полагает, что ответвление как каталог как SVN делает)

, основная трудность состоит в том, чтобы установить рабочий процесс между другим repos, не повреждая историю того, что было уже опубликовано (продвинутый общественности repo).

alt text

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

218
задан Honza Zidek 16 September 2016 в 02:30
поделиться

8 ответов

Вы можете передать InputStream в свойство, так что ваш файл может в значительной степени быть где угодно и вызывать что угодно.

Properties properties = new Properties();
try {
  properties.load(new FileInputStream("path/filename"));
} catch (IOException e) {
  ...
}

Итерировать как:

for(String key : properties.stringPropertyNames()) {
  String value = properties.getProperty(key);
  System.out.println(key + " => " + value);
}
242
ответ дан 23 November 2019 в 04:13
поделиться

По порядку:

  1. Вы можете хранить файл практически где угодно.
  2. расширение не требуется.
  3. Монтекристо проиллюстрировал , как его загрузить. Это должно работать нормально.
  4. propertyNames () дает вам перечисление для итерации.
3
ответ дан 23 November 2019 в 04:13
поделиться

Это загружает файл свойств:

Properties prop = new Properties();
InputStream stream = ...; //the stream to the file
try {
  prop.load(stream);
} finally {
  stream.close();
}

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

Для имени ... Я использую .properties для подробности, не думаю, что вам следует называть его .properties, если вы не хотите.

5
ответ дан 23 November 2019 в 04:13
поделиться

Есть много способов создать и прочитать файлы свойств :

  1. Сохраните файл в тот же пакет.
  2. Рекомендовать .
26
ответ дан 23 November 2019 в 04:13
поделиться

По умолчанию Java открывает его в рабочем каталоге вашего приложения (это поведение фактически зависит от используемой ОС). Чтобы загрузить файл, выполните:

Properties props = new java.util.Properties();
FileInputStream fis new FileInputStream("myfile.txt");
props.load(fis)

Таким образом, любое расширение файла может использоваться для файла свойств. Кроме того, файл также можно хранить где угодно, если вы можете использовать FileInputStream .

Кстати, если вы используете современную структуру, она может предоставлять дополнительные способы открытия файла свойств. . Например, Spring предоставляет ClassPathResource для загрузки файла свойств с использованием имени пакета из файла JAR.

Что касается перебора свойств, то после загрузки свойств они сохраняются в объекте java.util.Properties , который предлагает метод propertyNames () .

3
ответ дан 23 November 2019 в 04:13
поделиться
  • Вы можете сохранить файл где угодно. Если вы хотите сохранить его в своем jar-файле, вы захотите использовать Class.getResourceAsStream () или ClassLoader.getResourceAsStream () для доступа к нему. Если он находится в файловой системе, это немного проще.

  • Подойдет любое расширение, хотя .properties, по моему опыту, более распространено

  • Загрузите файл, используя Properties.load , передав InputStream или StreamReader , если вы используете Java 6. (Если вы используете Java 6, я бы, вероятно, использовал UTF-8 и Reader вместо кодировки по умолчанию ISO-8859-1 для потока.)

  • Итерировать по нему, как вы ' d перебирать обычную хеш-таблицу (от которой наследуются Properties ), например, используя keySet () . В качестве альтернативы вы можете использовать перечисление, возвращаемое функцией propertyNames () .

79
ответ дан 23 November 2019 в 04:13
поделиться

JSLint - это один из способов очистки кода в нашем приложении. Это помогает во время проверки кода и принятия решения о том, хорошо написана сторонняя библиотека или нет. Мы также используем IntelliJ IDEA ' s инспекции, которые по большей части предупреждают о тех же проблемах. Мы также используем jQuery, который помог очистить большой объем кода.

Я обнаружу, что Model View Controller (MVC) часто реализуется с некоторой связью между представлением и какой-либо моделью - таким образом, данное представление специально предназначено для обеспечения визуализации данного объекта (модели).

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

На этой диаграмме стрелки представляют зависимости:

MVC and MVP dependencies

Обычно вы слышите, что обсуждение этого шаблона возникает при обсуждении инфраструктуры ASP.NET MVC, и сталкиваетесь с информацией о шаблоне MVP и его реализации в ASP.NET WebForms. По моему опыту, часто считается, что WebForms сам по себе является структурой с шаблоном MVP - это неправда. используйте итератор или перечислитель или прямые методы класса Properties или java.lang.System class.

ResourceBundle class:

 ResourceBundle rb = ResourceBundle.getBundle("prop"); // prop.properties
 System.out.println(rb.getString("key"));

Properties class:

Properties ps = new Properties();
ps.Load(new java.io.FileInputStream("my.properties"));
11
ответ дан 23 November 2019 в 04:13
поделиться

Вот еще один способ перебора свойств:

Enumeration eProps = properties.propertyNames();
while (eProps.hasMoreElements()) { 
    String key = (String) eProps.nextElement(); 
    String value = properties.getProperty(key); 
    System.out.println(key + " => " + value); 
}
1
ответ дан 23 November 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: