Java 属性文件睡眠

Java 属性文件睡眠,java,Java,我有一个类,它将加载属性键。在执行过程中,它会休眠20秒,在休眠期间,我向属性文件添加一个新密钥并保存它。当程序唤醒时,它会再次读取属性文件,但其输出不会显示在睡眠期间添加的属性。如何使程序识别属性文件更改 这是我目前的代码: public class Test { public static void main(String[] args) { Properties props = new Properties(); InputStream is = T

我有一个类,它将加载属性键。在执行过程中,它会休眠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());
    }
}

当您指的是
src
文件夹时,我假设您使用的是IDE。如果我知道它到底是哪个IDE,我的答案可能会更准确

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


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

您将属性文件保存在哪里?你知道你从一个不可变的位置加载属性吗?我保存在项目的src文件夹中,它正在加载密钥并在控制台中打印。请添加这部分代码,这对你的问题至关重要。@M.leRutte,我想他是说他手动修改了属性文件。我的想法也一样。对于Intellij,它将是目标目录。使用相对路径读取时的典型情况。通常情况下,IDE是一个每当发生新的更改时都会将文件热交换到输出目录的IDE。谢谢,你说得对,我已经编辑了bin中的属性,现在它可以工作了