Имя ключа свойства в файле свойств


Если у меня есть свойство ниже в моем файле свойств, как я могу получить ключ свойства? Я знаю, как получить значение, но я не уверен, как получить ключ?

String myCountry="Australia";

У меня есть это свойство вместе с другими в моем файле. Как получить имя ключа (myCountry)? Я хотел бы отобразить его в системе.мне это нужно, но я не могу понять, как получить имя ключа, пожалуйста, помогите.

5 2

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