SpringBoot 的日常开发中,我们会发现当我们使用  InputStream input = getClass.getResource(path) 读取文件或者模板时,在 ida 中运行

测试的时候一点问题没有,但是打成 JAR 包部署到服务器上之后,文件的读取的结果将不存在,解压 jar 包发现文件时在里面的,这是怎么一会事呢?

因为,在 idea 中启动时,项目在操作系统下是一个目录,目录下的文件可以正常访问,但是打包之后是一个压缩吧,访问压缩包中的文件,以上方式是不可行的

这时我们可以将以上语句修改为下面两种方式,日常开发中也推荐使用 2 的方式,该方式在未打包的时候也是有效的,不需要改来改去

1,读取文件时使用 =>  InputStream input = getClass.getResourceAsStream(path)

2,也可以选择 => InputStream input = new ClassPathResource(path).getInputStream()

 

posted on 2019-04-25 19:12  被遗忘的优雅  阅读(1076)  评论(0编辑  收藏  举报