【问题标题】:How to save Java properties file to classpath?如何将 Java 属性文件保存到类路径?
【发布时间】:2014-05-28 18:43:57
【问题描述】:

要从类路径加载属性文件,我们可以这样做:

InputStream inputStream = CommonUtils.class.getClassLoader().getResourceAsStream("com/abc/resources/config.properties");
prop.load(inputStream);

完成上述步骤后,所有属性均已正确加载。但是如何更改属性并将其即时保存到同一个文件中呢? (以下不起作用)

OutputStream outputStream = new FileOutputStream("com/abc/resources/config.properties");
prop.setProperty(key, value);
prop.store(outputStream, null);

【问题讨论】:

  • “不起作用”是什么意思?文件是否已创建但为空白?你有例外吗?
  • 你的意思是要更新包含属性文件的jar文件吗?
  • 文件位于项目中,如第一部分所示,因此我使用class.getClassLoader() 来定位文件。但是如果我改变了一些东西并且我想把它写回来,我该怎么做呢?谢谢。

标签: java classpath properties-file


【解决方案1】:

您不能写入以这种方式加载的资源。

我建议当您的应用程序第一次启动时,它会从 jar 文件加载默认属性并保存在一个众所周知的位置。然后,当应用程序启动时,它会从该位置读取属性。 This stack overflow question 有更多关于如何以及在何处持久化的详细信息。

【讨论】:

  • 其实这也是我的解决方案……但我想知道除了复制原始属性文件之外是否还有更好的方法。谢谢。
猜你喜欢
  • 2011-06-10
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
相关资源
最近更新 更多