properties.getProperty(key)方法返回null值

时间:2014-08-01 12:11:30

标签: java swing java-ee properties-file

我正在加载属性文件并从该文件中获取值但是当我使用“属性”类和 getProperty(键)方法时,它返回 null value。

代码:

public class LoadPropertiesFile {

public static String getProperty (String key, String filePath) {
    Properties properties = new Properties();
    InputStream inputStream = null;
    String value = null;
    try {
        String appHome = ConfigUtil.getApplicationHome() + filePath; 
        inputStream = new FileInputStream(appHome);

        //load a properties file
        properties.load(inputStream);

        //get the property value 
        System.out.println(properties.getProperty("7"));   //print **Unlock**
        System.err.println(key);   //print **7**
        System.out.println(value);   //print **null**
        value = properties.getProperty(key);

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }
    return value;
}
}

输出:

Unlock
7 
null

属性文件:

2=Interactive
3=Network
4=Batch
5=Service
7=Unlock
8=Network Cleartext
10=Remote Desktop
11=Logon with cached credentials

通话方法:

logonType = new LoadPropertiesFile().getProperty("7", "path");

当我调用该方法时,它将仅返回 null 值。请帮帮我们。

2 个答案:

答案 0 :(得分:3)

您正在使用null进行初始化。

String value = null;

然后在>打印之后将其分配

System.out.println(value);
value = properties.getProperty(key);

输出: null

因此,在打印时,值只能为null,因为在System.out.println(value);之前永远不会更改其值。 只需切换这两个陈述:

value = properties.getProperty(key);
System.out.println(value);

输出: unlock

修改

properties.getProperty(key)也可以返回null,但前提是它的表中没有这样的键,否则它将返回指定的值,在你的示例unlock中。

有关详细信息,请参阅API文档:

  

public String getProperty(String key)

     

在此属性列表中搜索具有指定键的属性。如果找不到密钥   此属性列表,默认属性列表及其默认值,   然后检查递归。如果属性,该方法返回null   找不到。

http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#getProperty(java.lang.String)

答案 1 :(得分:1)

System.out.println(value);   //print **null**
value = properties.getProperty(key);

切换这两行并在 打印之前初始化value

value = properties.getProperty(key);
System.out.println(value);   //print Unlock