Springboot项目读取Jar包中resource目录下文件

今天遇到一个坑就是Springboot读取项目中Resource目录下的一个config.properties文件,最开始在eclipse中调试时读取没有任何问题,但用maven打成jar包运行后报错:
java.io.IOException: Stream closed
原代码如下:

new BufferedInputStream(ClassLoader.getSystemResourceAsStream("config.properties"))//本地是可以的,但是打包成jar包之后 InputStream is = this.getClass().getResourceAsStream("/config.properties"); //这种方法同理

【Springboot项目读取Jar包中resource目录下文件】查阅资料最后改为:
Resource res = new ClassPathResource("/config.properties", this.getClass()); logger.info(res.getURL().toString()); InputStream fis = res.getInputStream();

这里的classPath默认是相对this.getClass的路径.如果需要绝对路径, 就需要加个/, 代表从根开始找.

    推荐阅读