java更新属性文件运行时

我正在为生产监控编写独立的Java应用程序。 一旦开始运行,api就会配置为在.properties文件中设置的默认值。 在运行状态下,可以更改api的配置,并相应地更新.properties文件。 有没有办法实现这个目标? 还是有其他方法来实现这个?

提前致谢

Java Properties类( 此处为api )指定了“load”和“store”方法,它们应该完全相同。 使用FileInputStream和FileOutputStream指定要将其保存到的文件。

您可以使用基于java.util.Properties类的非常简单的方法,该方法确实有一个加载和存储方法,您可以将它们与FileInputStream和FileOutputStream结合使用:

但实际上,我建议使用现有的配置库,如Commons Configuration (以及其他配置库)。 检查属性Howto ,了解如何使用其API加载,保存和自动重新加载属性文件。

据我所知,java.util.Properties不提供开箱即用的运行时重新加载。 Commons Configuration支持在运行时重新加载配置。 可以通过在PropertiesConfiguration对象上设置ReloadingStrategy来配置重新加载策略。 它还提供了各种其他有用的实用程序,可用于配置应用程序。

我完全同意Apache Commons Configuration API是不错的选择。

此示例在运行时更新属性

File propertiesFile = new File(getClass().getClassLoader().getResource(fileName).getFile()); PropertiesConfiguration config = new PropertiesConfiguration(propertiesFile); config.setProperty("hibernate.show_sql", "true"); config.save(); 

从post如何更新Java中的属性文件

希望这有帮助!

除了Properties类的loadstore方法之外,您还可以使用Apache Commons Configuration库,它提供了轻松操作配置文件(而不仅仅是.properties文件)的function。

Apache通用配置API提供了不同的策略来在运行时重新加载属性文件。 FileChangedReloadingStrategy就是其中之一。 请参阅此链接以查看使用FileChangedReloadingStrategy在运行时重新加载属性文件的示例。