spring 工具类ResourceUtils 工具类简单应用 下载模板 读取资源文件等

File file = ResourceUtils.getFile("classpath:templates/工卡打印模板.html");  
默认读取的是static下的文件 我主要是用于提供下载文件
    为springBoot 项目 
占坑一年扩展两种情况

一种是普通的web项目,像用Tomcat容器,项目访问的时候,实际是去访问文件夹,而不是jar或者war包

获取路径的方法this.getClass().getResource("/")+fileName,获取流的方法this.getClass().getResourceAsStream(failName);都可以使用

上方写的工具类

import org.springframework.util.ResourceUtils;

File file= ResourceUtils.getFile("classpath:test.txt");

或者

ClassPathResource classPathResource = new ClassPathResource("test.txt");

获取文件:classPathResource .getFile();

获取文件流:classPathResource .getInputStream();



第二种是内嵌web容器,其特点是只有一个jar文件,在容器启动后不会解压缩,项目实际访问时jar包(典型的springboot项目)或者war包

这种最容易遇坑,最大的坑就是,用第一种方式读取,在idea,本地调试,完美运行,到linux环境下,只能一首凉凉送给自己

第一次用获取路径的方法this.getClass().getResource("/")+fileName,获取流的方法this.getClass().getResourceAsStream(failName);在本地运行时,能找到到,打印出来的路径,也没有,是我的的工作目录,项目目录,但是在target目录下。线上内嵌的工程,我们只会放一个jar文件上去,我理解是jar里面的路径是获取不到的,jar是封闭性东西吧,不像文件夹,总不能c:/home/xx.jar/file.txt,这种路径我。。。。别浪,稳点。所以说到这我已经吧上帝的真理告诉你了,不要告诉别人哦,这是个秘密,好,大哥我总结一点,读取jar里面的文件,我们只能用流去读取,不能用file,文件肯定要牵扯路径,jar那个路径刚刚我已经拼出来了 目前已知能解决的两种办法

jar里面文件读取方式:

ClassPathResource classPathResource = new ClassPathResource("test.txt");

获取文件流:classPathResource .getInputStream();


有用麻烦点个赞 给小弟补充动力



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值