Java项目中文件路径问题

我们先看java项目工程结构

一、jar包结构

1.编译前

2.编译后

编译前:一级目录src main下有java、resources

编译后:一级目录classes下有各包名、资源文件

二、war包结构

1.编译前

2.编译后

编译前:一级目录src main下有webapp、java、resources

编译后:一级目录项目名下有各静态文件名包WEB-INF、META_INF,其中WEB-INF下包含classes,lib,各网页和web.xml;其中classes和jar包结构一样

 

三、认识了目录结构去取目录下的文件就清楚了

1.取war包下的静态资源文件(css,js,image等等)

直接去取request.getContextPath()取得项目名+静态资源路径+静态文件名

2.取resources下的资源文件

因为无论jar包还是war包编译后的资源在classes里

(1)取文件只需Resource file=new ClassPathResource(“resources文件下的资源路径+文件”);

(2)取文件只需InputStream in=Class.getResourceAsStream(“/resources文件下的资源路径+文件”);

(3)用ResourceBundle.getBundle(“resources下不带后缀名的文件名”)读取properties文件。

3.取包下的文件

(1) 取包下的文件InputStream in=本class.getResourceAsStream(“本类包下文件的资源相对路径+文件”)。 注:这里路径开始没有“/”,有“/”会以编译后的classes目录为相对路径

4.取工程外硬盘上的文件

直接 new File(“路径名+文件”);

 

注:如果不是以绝对路径取resources下的文件时:war包resources下的文件会覆盖所依赖的jar包resources下的文件。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值