Java中的路径问题

1.绝对路径

    以根目录或某盘符开头的路径(或者说完整的路径)
    例如:
    c:/a.txt (Windows操作系统中)
    c:/xxx/a.txt (Windows操作系统中)
    /var/xx/aa.txt (Linux操作系统中)

    包含盘符,但有的系统不包含盘符(比如Linnux),所以无法做到通用

2.相对路径

相对于当前路径的一个路径。就是执行java命令时,控制台所在的路径。

在Eclipse中,当前路径是工程的根目录。

测试代码:
public class PathTest {
    public static void main(String[] args) throws Exception {
        System.out.println(new File("a.txt").getAbsolutePath());
    }
}
存在的问题:相对路径是相对于目前执行class文件的时候,控制台所在的路径,这样子也会导致出现问题。所以引入了classpath路径

3.类文件路径

引入:在Java程序中,一般情况下使用绝对路径还是相对路径都不太合适,因为Java程序的jar包所放的位置不确定,执行java程序时当前的路径也不确定,所以不合适。一般在Java程序中我们会把资源放到classpath中,然后使用classpath路径查找资源。

 就是使用了classPath的路径找到对应的资源文件。

获取classpath中的资源(InputStream):

public static void main(String[] args) throws Exception {
    Class clazz = new ClassPathTest().getClass();

    // 开头的'/'表示classpath的根目录,这个是表示从classpath的根目录中开始查找资源
    InputStream in = clazz.getResourceAsStream("/my.properties");

    // 如果开头没有'/',表示从当前这个class所在的包中开始查找
    InputStream in2 = clazz.getResourceAsStream("my.properties");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值