2013-11-17 3 views
2

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

String myCountry="Australia"; 

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

+0

свойства файл А выглядит как 'myCountry = Australia' и, вероятно, называется' names.properties'. Здесь вы видите исходный код Java. – cherouvim

ответ

3

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

for (Map.Entry<Object, Object> entry : properties.entrySet()) { 
    System.out.prinln(entry.getKey() + " = " + entry.getValue()); 
} 
0

Почему вы пишете String myCountry="Australia"; в вашем файле! Если вы можете просто оставить myCountry=Australia. А также не нужно писать String. Все значения файлов свойств: String.

0

Существует метод public Set<String> stringPropertyNames() в классе java.util.Properties, который документируется как:

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

Возвращенный набор не поддерживается объектом Properties. Изменения этого свойства не отражаются в наборе, или наоборот.

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

0

java.util.Properties Класс расширяет класс java.util.Hashtable, поэтому имеет метод keys(). вы можете использовать это, чтобы получить список всех ключей, используемых в файле.

Для распечатки ключ для заданного значения то, как это будет работать:

for (Map.Entry<Object, Object> entry : properties.entrySet()) { 
    if(entry.getValue().equals("Australia")) { 
     System.out.prinln(entry.getKey() + " = " + entry.getValue()); 
    } 
} 

This итерацию всех свойств, как ключ, значение пары до пары с правильным значением будет найден.

+0

Мне нужен только один ключ. – rickygrimes

+0

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

0

Кроме того, это может помочь:

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

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