java中的路径问题

java中的路径问题
一、URI形式的绝对资源路径
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b
二、本地系统的绝对路径
D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b
三、相对于classpath的相对路径
相对于file:/D:/java/eclipse32/workspace/jbpmtest3/bin/【URI】这个路径的相对路径。其中,bin是本项目的classpath。所有的Java源文件编译后的.class文件复制到这个目录中。
四、相对于当前用户目录的相对路径
1、对于一般JAVA项目,这是项目的根路径
2、对于JavaEE服务器,这可能是服务器的某个路径
3、默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名,这就是说,在使用java.io包中的类时,最好不要使用相对路径。否则,虽然在J2SE应用程序中可能还算正常,但是到了J2EE程序中,一定会出问题!而且这个路径,在不同的服务器中都是不同的! 推荐使用相对于当前classpath的相对路径
代码测试:
包结构:


代码:
package test.demo;
public class PathTest {
public static void main(String[] args) {
System.out.println("1:得到的是当前类PathTest.class文件的URI目录。不包括自己!");
System.out.println(PathTest.class.getResource(""));
System.out.println("2:得到的是当前的classpath的绝对URI路径");
System.out.println(PathTest.class.getResource("/"));
System.out.println("3:得到的也是当前ClassPath的绝对URI路径。");
System.out.println(PathTest.class.getClassLoader().getResource(""));
}
}
输出内容:

自我理解:可以将src看做是bin
五: Class.getResourceAsStream
如图:

1、根路径“/”是如何定义?
根路径是对应类所处类路径上的根目录
文件"1.txt"的绝对路径名为:" /test/demo/1.txt "
 文件"1.properties"的绝对路径名为:" /1.propertiest
2、绝对路径
InputStream is=  PathTest .class.getResourceAsStream(" 1.txt ");//相对的是A.class这个文件
3、class.getResourceAsStream最终调用是ClassLoader.getResourceAsStream
只是在这之前对参数进行了调整。如果参数已/开头,则去除/,否则把当前类的包名加在参数的前面。在使用ClassLoader.getResourceAsStream时,路径直接使用相对于classpath的绝对路径,并且不能已 / 开头


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值