Springboot 如何获取jar包里面的resource资源文件
需求:在项目开发中,有时候需要把一些模板文件及静态资源文件放到resource目录中,并且在服务启动的时候去访问这些文件。
问题:在本地开发环境中,通过读取对应的文件路径可以正常访问到,但是打成jar包以后,无法通过路径的方式读取到对应文件
1 | private final String sourceFilePath = this.getClass().getClassLoader().getResource("").getPath(); |
上述代码在本地没有问题,服务器会报FileNotFound!
解决方案:
读取jar里面的静态资源文件时不要使用路径,使用文件流读取
1 | InputStream inputStream = new ClassPathResource("").getInputStream(); |
如果需要处理文件,直接用文件流处理,如果必须要通过路径读文件,可以用文件流将文件写入到服务器的目录下,然后再通过路径去读取。
附上将文件流写入到本地的工具类
1 | /** |