读取classpath下文件 - SpringBoot

半兽人 发表于: 2018-12-05   最后更新时间: 2018-12-05 23:10:47  
{{totalSubscript}} 订阅, 2,347 游览

开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取方式在开发工程中都可行,但是打包后,由于文件被保存在jar中,会导致读取失败。

这时就需要通过类加载器读取文件,类加载器可以读取jar包中的class类当然也可以读取jar包中的文件。

方法1:获取文件或流
this.getClass().getResource("/")+fileName;
this.getClass().getResourceAsStream(failName);
方法2:获取文件
File file = org.springframework.util.ResourceUtils.getFile("classpath:test.txt");
方法3:获取文件或流
ClassPathResource classPathResource = new ClassPathResource("test.txt");
classPathResource .getFile();
classPathResource .getInputStream();

下面方法可以读取jar包下文件

方法1
InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");
方法2
InputStream io = ClassLoader.getSystemResourceAsStream("test.txt");


您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容



查看java更多相关的文章或提一个关于java的问题,也可以与我们一起分享文章
提问