2016-05-05 3 views
2

Я всегда задавался вопросом, почему мне нужен класс Properties, поскольку я всегда могу создать HashMap и сохранить пары ключ/значение. Может быть, это уменьшает количество кода для записи для загрузки/хранения файлов свойств. Потому что в противном случае мы должны создать BufferedReader и прочитать файлы и разделить String и все это. Но если мы собираемся получить наши пары ключ/значение из других источников, кроме файла, то, вероятно, не имеет никакого значения, пользуемся ли мы классом свойств или классом HashMap. Мне просто нужно подтвердить, правилен ли мой процесс мышления.Зачем нужен класс свойств в java?

Благодаря

+0

Свойства влияют на выполнение приложения, и по умолчанию для java настраивается среда для приложения. – t0mm13b

+0

Класс «Свойства» представляет определенный тип карты. Наличие класса дает вам возможность повторно использовать реализацию во всех вещах, обладающих свойствами. В противном случае вам придется переписывать его каждый раз. – ChiefTwoPencils

+0

Вы уже ответили на свой вопрос. Он содержит код ввода/вывода. Неясно, что вы действительно спрашиваете. – EJP

ответ

2

Properties это класс, который является частью Java, так как Java 1.0 .... задолго доMap и HashMap были введены. Фактически вы увидите, что Properties расширяет старый (унаследованный) класс Hashtable, который был предшественником HashMap.

Properties играет важную роль в значительном проценте приложений Java в виде объекта системных свойств. Он не может быть заменен в этой роли без внедрения проблем совместимости. (Даже изменение, которое вводится второй (двойной) свойства механизм будет проблематично ... так как некоторый код пишет к объекту системы Properties.)

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


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

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

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

Снова, правильно. Для этого варианта использования HashMap может быть даже выше. Большинство методов Properties/Hashtable синхронизированы. Если вам не нужна эта синхронизация, это (небольшое) ограничение производительности.

1

Как вы уже говорилось, Properties класс действительно дает возможность читать/сохранять с/на диск, но он делает гораздо больше, чем просто. Он может читать и хранить с любого InputStream, так что вы можете разобрать Properties от String или прочитать Properties от URL или Socket, или что у вас есть. Он также может конвертировать Properties в и из XML, что сейчас не так полезно, как было сказано 10 лет назад, но, тем не менее, классная функция. Самое главное, что вы не должны написать свой собственный парсер для синтаксиса, описанный в следующей статье:

https://en.wikipedia.org/wiki/.properties

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

0

Easy Maintenance: Если какая-либо информация была изменена из файла свойств, вам не нужно перекомпилировать класс java. Другими словами, преимущество использования файла свойств заключается в том, что мы можем настраивать вещи, которые могут измениться в течение определенного периода времени, без необходимости изменять что-либо в коде.

Файл свойств представляет собой простой набор пар ключ-значение, который может быть проанализирован классом java.util.Properties.

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

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