如何在java中重新加载属性文件

时间:2012-03-29 11:33:06

标签: java

任何人请帮我重新加载属性文件。 我有这样的代码

Properties prop = new Properties();
InputStream trackerFileStream = 
    LoadProperty.class.getClassLoader().getResourceAsStream("sample.properties");
prop.load(trackerFileStream);

通过类加载器加载属性文件后,我修改属性文件。 无法在同一程序执行中获得最新修改。

任何人都可以建议我如何在不重新执行程序的情况下重新加载属性文件。

2 个答案:

答案 0 :(得分:0)

您是否正确关闭/冲洗了溪流?为什么使用类加载器来访问文件?如果文件是外部文件,您应该通过普通的FileInputStream访问它,例如

答案 1 :(得分:0)

如果您想要更新,您需要检查资源从时间到时间并重新加载属性。

从classpath加载属性是一个问题。如果使用文件系统,则可以检查文件的最后修改属性,并决定是否重新加载它。在java 7中,你可以注册监听器,它会在修改文件时回拨你。加载资源时无法执行此操作。

但你可以做得更好。使用apache中的configuration包。它已经实现了重新加载逻辑,因此您可以对抗实际映射到资源的“配置”,并确保始终获得更新的数据。