如果我的属性文件中有以下属性,我该如何获取属性键?我知道如何获得价值,但我不知道如何获得密钥?
String myCountry="Australia";
我和我的文件中的其他人一起拥有此属性。我如何获得密钥名称(myCountry)?我想在System.out中显示它,所以我需要它,但我无法弄清楚如何获取密钥名称,请帮忙。
答案 0 :(得分:4)
属性文件的要点是将可配置值与众所周知的密钥相关联。您应该知道密钥并使用它来查找与密钥关联的可配置值。否则,Properties对象是Map,您可以遍历所有条目:
for (Map.Entry<Object, Object> entry : properties.entrySet()) {
System.out.prinln(entry.getKey() + " = " + entry.getValue());
}
答案 1 :(得分:0)
为什么要在属性文件中编写String myCountry="Australia";
?如果您可以简单地保持myCountry=Australia
。而且也不需要写String
。
所有属性文件值均为String
。
答案 2 :(得分:0)
类public Set<String> stringPropertyNames()
中有一个方法java.util.Properties
,记录为:
返回此属性列表中的一组键,其中键及其对应的值是字符串,如果尚未从主属性列表中找到相同名称的键,则包括默认属性列表中的不同键。键或键不是String类型的属性将被省略。
返回的集合不受Properties对象的支持。对此属性的更改不会反映在集合中,反之亦然。
返回: 此属性列表中的一组键,其中键及其对应的值是字符串,包括默认属性列表中的键。
答案 3 :(得分: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());
}
}
这会遍历所有属性作为键值对,直到找到具有正确值的对。
答案 4 :(得分: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