java 获取 文件_JAVA获取文件的几种常用方式

本文探讨了如何在Java应用中使用`System.getProperty(user.dir)`获取用户目录,Eclipse和Tomcat环境下文件路径定位,以及通过`getResource`和`getResourceAsStream`处理不同路径的技巧。重点介绍了log4j.properties文件的查找路径和绝对路径的获取方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、user.dir

System.out.println(System.getProperty("user.dir"));

此方获取的是运行的路

比如

1、

33cef06f7dea93c12352e741a9b0de3a.png

2、如果在eclipse上运行则是eclipse运行文件同级

5dbc7e0361613ef7253e56c52ae7def2.png

3、tomcat则在

737da3f0b77744d90ce1ea880dcbcf82.png

4、File file = new File("log4j.properties");

这里的log4j.properties也是在以上类型的目录下查找

5、FileInputStreaminput = newFileInputStream("log4j.properties");

与File一样,在运行路径上找文件

2、获取绝对路径

方法 String in = LogUtil.class.getResource("/").getPath();

或者:this.getClass().getClassLoader().getResource("/").getPath()

结果:

/E:/temp/springmvc/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/rentBook/WEB-INF/classes/

LogUtil.class.getResource("/").getPath(); 加个”/”就会打印classes下的绝对路径

LogUtil.class.getResource("").getPath(); 就会显示classes + 包名

Tomcat打印如下:

9d7f0e9a02813a0107c4533c1d136531.png

WEB工程

this.getServletContext().getRealPath("/")

返回:

工程的绝对路径/返回的也称为“根”

比如工程:

Book

|_WEB-INF

|_xx.properties

返回d:\Book\

3、相对路径:

InputStream input = LogUtil.class.getResourceAsStream("/log4j.properties");

读取的是src/log4j.properties 下的文件

InputStream input = LogUtil.class.getResourceAsStream("log4j.properties");

读取的是 与LogUtil同级的log4j.properties

第二种:

getServletConfig().getServletContext()

.getResourceAsStream("report1.jasper")

访问的是根路径

Book

|_WEB-INF

|_xx.properties

|_report1.jasper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值