我有一个将加载属性键的类。在执行期间,它会休眠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());
}
}
答案 0 :(得分:1)
当您指的是src
文件夹时,我假设您使用的是IDE。如果我知道它究竟是哪个IDE,我可以更准确地回答。
尽管如此,ClassLoader.getResourceAsStream()
方法正在从bin
(实际名称可能因IDE而异)文件夹中读取属性文件,该文件夹通常由IDE构建一次当它启动java程序时。任何没有java源文件的文件,因此不以.java
结尾,只需从src
复制到bin
。
因此,在20秒后,您的程序将读取bin
文件夹中未编辑的属性文件。