【问题标题】:load resources from build directory or not是否从构建目录加载资源
【发布时间】:2022-01-02 17:58:12
【问题描述】:

我需要在我的应用程序中加载一些文件并读取/写入一些 json 文件。 我在资源文件夹中创建了这些文件,并使用 ClassLoader 和 getResource() 获取它们。 问题是,当我使用 ClassLoader 时,我从构建目录中获取文件,因此当我在文件上写入时,更改不会影响 src 文件夹中的文件,而只会影响构建文件夹中的文件,并且当我重新运行时应用程序的更改将被丢弃。

我使用 Gradle 和 IntelliJ

【问题讨论】:

  • 资源是只读的 - 并且应该来自构建目录(在部署/分发文件夹/JAR部署之后)。可写文件最好保存在用户目录(或那里自己的子目录),或工作目录(最终与部署目录相同)
  • @user16320675 谢谢

标签: java json gradle build resources


【解决方案1】:

你应该把所有的json文件放在“res/raw”下,然后阅读它们。

如果您在运行时写入任何内容,则应将文件复制到内部/外部存储,然后从此新副本读取或写入。

【讨论】:

  • 谢谢,保存副本的正确位置是什么?
  • 你可以在这里使用 Enviroment.getExternalStorage() 方法更多信息developer.android.com/reference/android/os/…
  • 我不是为android开发,但它是一个桌面应用程序,是一样的吗?
  • 我很抱歉,不,它们对于桌面不一样,您应该使用 Java File 类。关于您应该将副本保存在哪里,您可以将它们保存在您的课程所在的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2016-08-16
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 2016-08-28
  • 2013-12-19
相关资源
最近更新 更多