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");
}