写代码时几次遇到这个问题,简单记录一下
以前一直在spring使用ResourceUtils.getFile()获取资源文件,但是spring boot打包之后,因为是富jar包,该方法获取资源文件失效,只能采用如下方法获取
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(queryPath);
String content = inputStream2String(inputStream);
public String inputStream2String(InputStream in) throws IOException {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1; ) {
out.append(new String(b, 0, n));
}
return out.toString();
}
需要注意的是queryPath是相对于classpath下的路径,不用带/,也不需要带classpath
SpringBoot中资源文件读取
本文介绍在SpringBoot环境下如何正确地从富jar包中读取资源文件。当使用ResourceUtils.getFile()方法失效时,可以通过getClass().getClassLoader().getResourceAsStream()方法结合自定义的转换函数来获取资源文件内容。
4万+

被折叠的 条评论
为什么被折叠?



