从属性文件中读取值

时间:2013-08-15 10:54:10

标签: java properties

我正在尝试在单独的“GetConfigProperties”类文件中读取属性文件,并将值传递给主函数“LoginTest.java”。但是我无法获得预期的属性值,并且代码中也没有显示错误。

我在src / config.properties中有属性文件 我在src / com.automation.test中有主要功能 - > LoginTest.java 我有java函数来读取src / com.library.helper中的属性文件 - > GetConfigProperties.java

我在下面给出了读取Config属性的代码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties; 

public class GetConfigProperties {

//protected File file = new File("config.properties");
protected static Properties props = new Properties();
InputStream is = GetConfigProperties.class.getResourceAsStream("/config.properties");

    public static String extractUrlData(){
    String webUrl = props.getProperty("webUrl");
    return webUrl;
    }
}

- 另外,我在主LoginTest.java中导入了这个类文件,并尝试以GetConfigProperties.ExtractUrlData()的形式访问获取数据但是失败了。

P.S - 我研究了许多问题和答案,因为我对Java完全不了解,因为一切看起来都很独特。

1 个答案:

答案 0 :(得分:1)

以下是访问属性的方法:

GetConfigProperties.ExtractUrlData();

这会调用 static 方法ExtractUrlData()(应该称为extractUrlData()以符合Java命名约定)。您无处调用GetConfigProperties()的{​​{1}}方法,这是填充Properties对象的位置。

您应该选择:属性是静态的,应该在加载类时,通过静态方法或静态块填充:

GetConfigProperties

或者它应该是一个实例字段,可以由类构造函数或其初始化对象的实例方法填充。

另一个问题是,运行您的应用的用户将该文件与您完全相同的文件夹(如果他甚至运行Windows)的可能性非常小。您应该将属性文件与应用程序的.class文件捆绑在一起(在同一个jar或同一目录中),并使用类加载器加载资源:

private static Properties props = createAndPopulateProperties();