属性文件睡眠

时间:2017-10-06 17:48:29

标签: java

我有一个将加载属性键的类。在执行期间,它会休眠20秒,当它处于休眠状态时,我会在属性文件中添加一个新密钥并保存。当程序唤醒时,它再次读取属性文件,但其输出不显示在睡眠期间添加的属性。如何让程序识别属性文件更改?

这是我目前的代码:

public class Test {
    public static void main(String[] args) {
        Properties props = new Properties();
        InputStream is = Test.class.getClassLoader().getResourceAsStream(
                "com/vijayspring/common/CityIns.properties");

        try {
            props.load(is);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(props.stringPropertyNames());

        try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Properties props1 = new Properties();
        InputStream is1 = Test.class.getClassLoader().getResourceAsStream(
                "com/vijayspring/common/CityIns.properties");

        try {
            props1.load(is1);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(props1.stringPropertyNames());
    }
}

1 个答案:

答案 0 :(得分:1)

当您指的是src文件夹时,我假设您使用的是IDE。如果我知道它究竟是哪个IDE,我可以更准确地回答。

尽管如此,ClassLoader.getResourceAsStream()方法正在从bin (实际名称可能因IDE而异)文件夹中读取属性文件,该文件夹通常由IDE构建一次当它启动java程序时。任何没有java源文件的文件,因此不以.java结尾,只需从src复制到bin

因此,在20秒后,您的程序将读取bin文件夹中未编辑的属性文件。