web项目读取classpath下面文件
来源:互联网 发布:软件可用性 编辑:程序博客网 时间:2024/06/04 18:54
注意:本文用到spring的工具类和,commons-io工具类
首先分两大类按web容器分类
1、
是普通的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();
2、
是内嵌web容器,其特点是只有一个jar文件,在容器启动后不会解压缩,项目实际访问时jar包或者war包
这种最容易遇坑,最大的坑就是,用第一种方式读取,在eclipse,本地调试,完美运行,到Linux环境下,就挂了,你这个大骂靠,什么玩意,莫慌莫慌,你来到了我的博客,就会让你长知识的
首先用获取路径的方法this.getClass().getResource("/")+fileName,
获取流的方法this.getClass().getResourceAsStream(failName);
在本地运行时,绝壁能找到,你打印出来路径,没错,是咱们eclipse的工作目录,项目目录,但是在target目录下。
现在给你分析为什么去到线上,就挂了,很简单,线上内嵌的工程,我们只会放一个jar文件上去,我理解是jar里面的路径是获取不到的,jar是封闭性东西吧,不像文件夹,总不能c:/home/xx.jar/file.txt,这种路径我写出来你是不是心里激起一点小浪花,别浪,稳点。所以说到这我已经吧上帝的真理告诉你了,不要告诉别人,这是个秘密,我总结一点,读取jar里面的文件,我们只能用流去读取,不能用file,文件肯定要牵扯路径,jar那个路径刚刚我已经拼出来了
jar里面文件读取方式:
ClassPathResource classPathResource = new ClassPathResource("test.txt");
获取文件流:classPathResource .getInputStream();
- web项目读取classpath下面文件
- web项目读取classpath下面文件心得总结
- Java简单读取classpath下面的文件
- web项目读取classpath目录下配置文件
- Java读取Classpath文件
- Java读取Classpath文件
- Spring——WEB项目web.xml文件中classpath: 跟classpath*:使用的区别
- WEB项目web.xml文件中classpath: 跟classpath*:使用的区别
- java web项目读取文件
- Eclipse--Web项目中 .classpath、mymetadata、project文件的功用
- Web项目中 .classpath、.mymetadata、.project文件的作用详解
- Web项目中 .classpath、.mymetadata、.project文件的作用
- SSH-Web项目中 .classpath、.mymetadata、.project文件的作用
- Web项目中 .classpath、.mymetadata、.project文件的作用
- Web项目中 .classpath、.mymetadata、.project文件的作用
- Web项目中 .classpath、.mymetadata、.project文件的作用
- 关于怎么读取Maven项目resource目录下面的文件
- 读取classpath里的文件
- MySQL存储过程
- NumberFormatException
- 判断输入字符类型,汉字转拼音
- 哈夫曼树的最长带权路径WPL算法
- EasyUI datebox datetimebox的自定义按钮 按条件设置日期的不可用 js日期计算
- web项目读取classpath下面文件
- 数据库——游标
- DDOS攻击 — 棋牌游戏创业公司的生死劫
- DAO层,Service层,Controller层、View层
- LR中判断HTTP返回状态码
- 策略模式
- 初识--AOP
- python 三种方法删除列表里所有空格项
- mybatis+springmvc框架反射获取dao类