SpringBoot项目里,我们可能需要读取一些自定义的配置文件等,这些文件放在resources目录下,有时候,我们在idea开发时明明是可以读取到文件的,一旦打包成jar放到服务器上运行就会报错,说找不到指定的文件。
方面整理了几个我平常项目中读取resources(或者resources下面子文件夹)下的文件的方式
- 方式1
class.getClassLoader().getResourceAsStream
String fileContent = IOUtils.toString(MyApplication.class.getClassLoader().getResourceAsStream("application.properties"));
- 方式2
org.springframework.core.io.FileSystemResourceLoader
new FileSystemResourceLoader().getResource("classpath:application.yml");
- 方式3
使用@Value注解自定注入Resource
import org.springframework.beans.factory.annotation.Value; @Value(value = "classpath:/assets/some_file.jpg") private org.springframework.core.io.Resource someFileJPG;
- 方式4
org.springframework.core.io.ClassPathResource
ClassPathResource resource = new ClassPathResource("assets/some_file.jpg"); resource.getInputStream();
someFileJPG是个Resoruce类,可以有.getInputStream()方法,其他方法在IDEA提示下也可以点一下看看。
文章评论