Java项目文件路径

读取Java项目中的文件

eclipse中项目结构
这里写图片描述
对应到磁盘上的目录结构
这里写图片描述
1.文件位于项目根目录下

File file1 = new File("folder1/a.xml");
System.out.println(file1.exists()); // true
File file2 = new File("b.xml");
System.out.println(file2.exists()); // true
InputStream in= new FileInputStream("folder1/a.xml");
System.out.println(in.available()); // 38字节

2.文件位于类路径下,可利用Class对象或者ClassLoader对象去在类路径下查找文件

InputStream inputStream1 = HelloWorld.class.getClassLoader().getResourceAsStream("c.xml");
System.out.println(inputStream1.available()); // 38字节
InputStream inputStream2 = HelloWorld.class.getResourceAsStream("/c.xml");
System.out.println(inputStream2.available()); // 38字节

注意:Class对象的getResourceAsStream(String path)方法的参数加 / 才是在类路径下查找文件

Class对象与ClassLoader对象的getResourceAsStream(String path)方法区别

1.Class对象的getResourceAsStream(String path)中的path可以以 / 开头,也可以不以 / 开头。若以 / 开头,表示在类路径根目录下查找,不以 / 开头,表示在当前.java文件编译后.class文件所在的目录中找
2.ClassLoader对象的getResourceAsStream(String path)中的path不以/开头!,表示在类路径根目录下查找

类路径根目录(类路径)

.java文件编译后的.class文件除去所有包路径后所在的目录,所有的.class文件都会放到该目录下。若.java文件是放在某个包下,最终在类路径下会有多级包路径
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值