它不会从.properties文件中加载所有数据

时间:2019-05-15 15:15:27

标签: java selenium intellij-idea properties appium

prop.getProperty();仅加载某些数据,如果我添加了一些新内容或更改了.properties文件中的字符串名称,并且对其进行了编码也无法加载。

我正在尝试从属性文件中加载一些数据,以将其包含在capability.setCapability

但是问题是某些数据已加载,有些数据为null,我已经尝试了所有方法,但我想知道.properties文件可以处理多少个变量是否存在限制?

myData.properties文件

pinCode=123456

osname=Android 9

activationCode=13412741 39313106

user=user123456

device=Android Emulator

name=G5 SE

代码

System.out.println(prop.getProperty("name"));

System.out.println(prop.getProperty("user"));

System.out.println(prop.getProperty("device"));

System.out.println(prop.getProperty("osname"));

System.out.println(prop.getProperty("activationCode"));

System.out.println(prop.getProperty("pinCode"));

输出

null
user123456
Android Emulator
null
13412741 39313106
123456

现在应该打印出“名称”,“用户”,“设备”,“ activationCode”,“ pinCode”和“ osname”了吗?

但是它只打印出“用户”,“激活码”,“ pinCode”和“设备”,我将“名称”和“ osname”作为空值。

请注意,如果我在属性文件中更改了字符串名称,并且在代码中也无法正常工作...

例如,如果我将“ pinCode”更改为“ pin”或“ code”,则无法使用。

请帮助这杀死我。

1 个答案:

答案 0 :(得分:0)

您可能没有加载正确的文件

一个简单的测试是:

路径

src\test\java\Test.java
src\test\resources\myData.properties

myData.properties

pinCode=123456
osname=Android 9
activationCode=13412741 39313106
user=user123456
device=Android Emulator
name=G5 SE

测试

    @Test
    public void testProp() throws IOException {
        Properties prop = new Properties();

        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(Objects.requireNonNull(classLoader.getResource("myData.properties")).getFile());

        prop.load(new FileInputStream(file));

        System.out.println(prop.getProperty("name"));
        System.out.println(prop.getProperty("user"));
        System.out.println(prop.getProperty("device"));
        System.out.println(prop.getProperty("osname"));
        System.out.println(prop.getProperty("activationCode"));
        System.out.println(prop.getProperty("pinCode"));
    }

输出

G5 SE
user123456
Android Emulator
Android 9
13412741 39313106
123456