【问题标题】:How to read/write file in jar [duplicate]如何在jar中读/写文件[重复]
【发布时间】:2013-08-02 09:26:58
【问题描述】:

情况:我有一个罐子,罐子里有一个文件。在这个文件中写入了一个对象,表示应用程序的最后状态(以便用户可以从他停止的地方继续)。我正在使用 java Serializable 接口来写入和读取对象。

我的问题是:从 jar 运行应用程序时如何读取文件。

到目前为止的代码:

in = new ObjectInputStream(Configuration.class.getResourceAsStream("config.txt"));

Object o = in.readObject();
if(o instanceof Configuration)
    this.configuration = (Configuration) o;

只要我从 eclips 运行应用程序,它就可以完美运行。 当我运行 jar 时,会创建一个窗口,但没有显示任何内容。所以我假设发生了错误。有人知道如何读取文件吗?

【问题讨论】:

  • 将需要更新的配置文件存储在 JAR 中是一个非常糟糕的主意。此外,在某些平台上写入 JAR 可能是不可能,因为它将在 JVM 运行时使用。最好使用外部配置文件。
  • 假设您的文件已导出到 jar 中,getResourceAsStream 应该会找到它。尝试获取有关您的应用程序正在做什么的更多信息...错误/stacketrace 和 porst 在这里。而且对于写作,这已经在SO上回答过很多次了,这是不可能的。

标签: java file jar


【解决方案1】:

Preferences API 可能是您想要实现的目标的更好选择。

【讨论】:

    【解决方案2】:

    “config.txt”在打包时是否包含在 JAR 文件中?

    我同意@nneonneo 的观点,即 JAR 文件不是存储配置数据(或任何其他类型的可变数据)的最佳位置。更好的选择可能是将配置数据存储在 JAR 文件之外的“.properties”或 XML 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-12
      • 2012-12-05
      • 1970-01-01
      • 2019-08-23
      • 2013-07-05
      • 2019-03-04
      • 2016-08-30
      • 2019-12-20
      相关资源
      最近更新 更多