Имя ключа свойства в файле свойств
Если у меня есть свойство ниже в моем файле свойств, как я могу получить ключ свойства? Я знаю, как получить значение, но я не уверен, как получить ключ?
String myCountry="Australia";
У меня есть это свойство вместе с другими в моем файле. Как получить имя ключа (myCountry)? Я хотел бы отобразить его в системе.мне это нужно, но я не могу понять, как получить имя ключа, пожалуйста, помогите.
5 ответов:
Смысл файла свойств заключается в том, чтобы связать настраиваемые значения с известными ключами. Вы должны знать ключ и использовать его, чтобы найти, какое настраиваемое значение было связано с ключом. В противном случае объект свойств является картой, и вы можете перебирать все записи:
for (Map.Entry<Object, Object> entry : properties.entrySet()) { System.out.prinln(entry.getKey() + " = " + entry.getValue()); }
Почему вы пишете
String myCountry="Australia";
в файле свойств? Если вы можете просто держать какmyCountry=Australia
. А также не надо писатьString
. Все значения файла свойств -String
.
Существует метод
public Set<String> stringPropertyNames()
в классеjava.util.Properties
, который задокументирован следующим образом:Возвращает набор ключей в этом списке свойств, где ключ и соответствующее ему значение являются строками, включая различные ключи в списке свойств по умолчанию, если ключ с тем же именем еще не найден из основного списка свойств. Свойства, ключ или значение которых не относятся к типу String, опущены.
Возвращаемый набор не поддерживается объектом Properties. Изменения этого свойства не являются отражается в наборе, или наоборот.
Возвращает: набор ключей в этом списке свойств, где ключ и соответствующее ему значение являются строками, включая ключи в списке свойств по умолчанию.
The java.утиль.Класс Properties расширяет java.утиль.Класс HashTable, поэтому имеет метод
keys()
. это можно использовать для получения списка всех ключей, используемых в файле.Чтобы распечатать ключ для заданного значения, будет работать что-то вроде этого:
for (Map.Entry<Object, Object> entry : properties.entrySet()) { if(entry.getValue().equals("Australia")) { System.out.prinln(entry.getKey() + " = " + entry.getValue()); } }
Это повторяется через все свойства как пары ключ-значение, пока не будет найдена пара с правильным значением.
Также это может помочь:
import java.io.FileInputStream; import java.util.Enumeration; import java.util.Properties; public class MainClass { public static void main(String args[]) throws Exception { Properties p = new Properties(); p.load(new FileInputStream("test.txt")); Enumeration e = p.propertyNames(); for (; e.hasMoreElements();) { System.out.println(e.nextElement()); } } }
Источник: http://www.java2s.com/Tutorial/Java/0140__Collections/GettingakeyListfromProperties.htm