SpringBoot项目打包后如何引用resouces路径下资源

读取Resource下文件的几种方法


// 1.通过ClassPathResource
ClassPathResource classPathResource = new ClassPathResource("excleTemplate/test.xlsx");
InputStream inputStream =classPathResource.getInputStream();

// 2.通过ContextClassLoader
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excleTemplate/test.xlsx");

// 3. getResourceAsStream 注意,前面加/表示绝对路径(从根目录下找),不加为相对路径(相对于这个class文件的位置)
InputStream inputStream = getClass().getResourceAsStream("/excleTemplate/test.xlsx");
// 或者使用 ClassLoader: InputStream inputStream = getClass().getClassLoader().getResourceAsStream("excleTemplate/test.xlsx");

// 4. ResourceUtils 注意,当你打jar包后,此方法失效。因为jar包内的文件无法使用系统文件路径访问
File file = ResourceUtils.getFile("classpath:excleTemplate/test.xlsx");
InputStream inputStream = new FileInputStream(file);
1 个赞