大佬教程收集整理的这篇文章主要介绍了如何读取资源文件夹下的Json文件?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的 SpringBoot 应用程序中,我必须在这个路径 src/main/resources/mock/filename.Json 读取一个 Json 文件。 我是这样做的
JsonReader JsonReaderStream = new JsonReader(new inputStreamReader(Objects.requireNonNull(ClassLoader.getSystemClassLoader().getresourceAsstream("./mock/filename.Json"))));
它在本地工作,但是当我在 Kubernetes 上部署我的 docker 文件并尝试读取我的 Json 文件时,我收到了 NullPointerException。 我使用 gradle 进行构建。我声明我是 gradle、docker 和 kubernetes 的初学者。
谁能向我解释为什么它可以在本地运行,而不能在 Kubernetes 上运行?
看起来您正在尝试为方法 getresourceAsStream
提供文件路径,但它没有提供。 JavaDoc 不是很好,您必须将不同的文档拼凑在一起才能理解它,但这里有一些相关部分:
查找具有给定名称的资源。资源是一些数据(图像、音频、文本等),可以通过类代码以独立于代码位置的方式访问。 资源的名称是一个以“/”分隔的路径名,用于标识资源。
[...]
在上面,资源的包名是 从最后一个 '/' 之前的字符的子序列派生 在名称中,然后替换子序列中的每个“/”字符 和 '。'。派生包名称时忽略前导斜杠。 例如,为名为的资源派生的包名称 “a/b/c/foo.properties”是“a.b.c”。
因此,要在正在运行的系统的类路径上找到您的资源,请删除 ./
部分,使其仅显示为:.getresourceAsStream("mock/filename.json")
。
这里有两种可能。
进入 .jar
包,检查您的 mock/x.json
是否存在于 target\example.jar!\BOOT-INF\classes
中。
如果正在打包但未找到,请参阅this answer。new ClassPathresource("./mock/filename.json")
然后使用 resource.geTinputStream()
。
强烈建议你把这些静态json文件放在resources/static/
下,这样你就可以直接把这些文件比如resources/static/mock/a.json
,作为/mock/a.json
的请求
以上是大佬教程为你收集整理的如何读取资源文件夹下的Json文件?全部内容,希望文章能够帮你解决如何读取资源文件夹下的Json文件?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。