写入JAR中的属性文件

时间:2014-12-24 18:29:31

标签: java url jar

我正在创建一个将在Windows,Mac OX和Linux上运行的应用程序。我有一个存储用户设置的属性文件,需要动态读取和更改。

JAR文件是压缩的,并不意味着动态更改,这意味着我应该写入外部文件。

我正在使用:

new FileInputStream("database")

new FileOutputStream("database")

如何创建一个在所有三个操作系统中保持一致的URL。 JAR作为桌面上的应用程序运行,我希望将文件存储在离散的地方。

我尝试从与此类相同的包中读取本地文件:

this.getClass().getResourceAsStream("database")

这样可行但是我似乎无法创建一个输出流来写入同一个文件,但这会破坏动态更改JAR文件的规则。

1 个答案:

答案 0 :(得分:1)

你有很多很好的理由不应该这样做,我不知道如何:

  • GetResourceAsStream不一定从JAR本身获取文件。你巧合地从那里得到它,因为Jar是类路径中的第一个或唯一的元素。
  • 如果要签名,可以在自己的Jar中写入文件可能会破坏JAR签名。
  • 可能需要备份数据库;在这种情况下,您可能希望将其与代码分开备份(恢复数据库时可以升级代码)。

希望这有帮助。