【发布时间】:2017-12-06 23:19:12
【问题描述】:
当我的应用程序启动时,它会使用以下代码读取配置属性文件:
Properties properties = new Properties();
// parse the config resource
try (InputStream input = getClass().getClassLoader().getResourceAsStream(filename))
{
if (input == null)
{
// throw exception
}
// read the property list (key-value pairs) from the input byte stream
properties.load(input);
}
我能够读取和设置个别属性。
属性文件位于src/main/resources,在我使用maven 构建应用程序后,它的副本放在target/classes。当我打开它时,创建的 jar 文件在根目录中也有一个副本。
我还希望能够覆盖属性文件,以便下次应用程序启动时,它将读取新的更新文件。我如何实现这一目标?甚至可能吗?
我找到了this 的问题,但没有答案。
我试过了:
try (OutputStream output = new FileOutputStream(filename))
{
properties.store(output, null);
}
如果我只想完全创建一个新文件,这很有效。然后我必须修改应用程序,以便它从给定文件夹中读取,而不是从资源文件夹中读取。这是我应该做的吗?
我是 Java 新手,所以请放轻松。
【问题讨论】:
标签: java maven properties resources