【问题标题】:Updating a bundled resource file更新捆绑的资源文件
【发布时间】:2013-02-18 21:47:31
【问题描述】:

我正在做以下事情,

String str = "this is the new string";
URL resourceUrl = getClass().getResource("path_to_resource");
File file = new File(resourceUrl.toURI());
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(xml);
writer.close();

在上面的代码中,我试图写入我的一个 java 包中包含的资源文件。执行代码后,我的程序运行良好,但文件只是更新 web-INF 中的属性文件,而不是更新到存储它的包中。谁能帮我弄清楚我怎样才能做到这一点,或者我在这里做错了什么?非常感谢。

【问题讨论】:

  • 不太确定你想在这里实现什么,但 getClass().getResource(..) 会在你的类路径中获取第一个匹配的资源。如果这不是您想要的,那么您可能需要寻找另一种指定所需文件的方法。此外,如果资源位于 jar 中,那么您的构造将失败,因为 URL 不能作为文件访问。

标签: java io java-io


【解决方案1】:

您不应该尝试写入与您的应用程序类一起存储的文件。根据应用程序服务器,您尝试写入的位置可能不可写,或者应用程序可能正在从应用程序存档(.war 文件)运行。

您应该使用外部文件夹来存储配置和其他应用程序数据。通常,您可以通过环境变量或部署期间指定的属性来指定此文件夹。

【讨论】:

  • 非常感谢您的回复,不过我还有一个问题,我想通过这样做来实现,是修改一个属性文件以供我的应用程序在运行时读取。你能建议一个正确的方法吗?
  • 你不是很清楚。您在什么时候尝试修改此文件。
猜你喜欢
  • 2023-03-03
  • 2019-02-08
  • 2016-03-15
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 2014-06-07
  • 2015-11-24
  • 2021-05-08
相关资源
最近更新 更多