1)根据文件系统定位:
所谓文件系统定位就是以文件系统的根目录为绝对路径,以程序运行的工作目录为相对路径进行资源定位。Java中最常用的以文件系统定位方式进行处理的类包括File、 FileInputStream和FileOutputStream。
1、[绝对]文件系统的根目录:windows下就是各分区磁盘的根目录,如C:\ D:\ E:\ F:\,linux下就是/。(\\和/)
2、[相对]程序运行的工作目录:java虚拟机启动时所在的目录,如D:\java>java lzy.test.TestResource,此时程序的工作目录就是D:\java。(对于eclipse来说,程序的工作目录就是项目的根目录,并不是bin目录。)
2)根据类路径定位:
所谓类路径定位就是以类路径为绝对路径,以包路径为相对路径进行资源定位。Java类的静态方法getResource、getResourceAsStream就是以类路径的方式进行资源定位。
1、[绝对]类路径:虚拟机加载类时寻找包组织及类文件的基目录,体现为文件系统目录或者是一个jar文件(对于eclipse,bin目录就是类路径)
2、[相对]包路径:类文件在包组织下的实际目录,如类路径D:/java下有一个包lzy.test里面有一个类TestResource.class,这个类文件的包路径是D:/java/lzy/test
(我们将“/”开头的路径称为绝对路径,将非“/”开头的路径称为相对路径。)