一、概念
-
绝对路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径
-
相对路径:由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系
二、java通过绝对路径读取文件
文件路径: E:\my file\images\lixin.jpg
读取文件代码:
File file=new File("E:\\my file\\images\\lixin.jpg")
需要注意的是绝对路径还要转义反斜杠
三、java通过src目录读取文件(以src为根目录)
文件路径:E:\李鑫\o2o\src\main\resources\watermark.jpg
获取文件代码:
File file=new File("src/main/resources/watermark.jpg")
当我们把文件放在Java项目的src\目录下时,可以通过文件的绝对路径来读取,比第一种方法更好一些,注意src前是不需要添加斜杠/的,当然我们也可以把文件放在src目录下,就可以通过读取src/main/resources/watermark.jpg来实现
四、java通过CLASSPATH路径来读取包内文件(bin目录)
- 第一种方法:类名.class.getResource("/").getPath()+文件名称
- 另外一种方法:Thread.currentThread().getContextClassLoader().getResource("").getPath()+文件名称【主要使用】
bin是本项目的classpath,只要和当前类的的java源代码同一目录下即可,会自动加载到bin目录下
推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
五、Web应用程序中资源的寻址
在Web应用程序中,我们绝对不能使用相对于当前用户目录的相对路径。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
这是我们开发Web应用程序时一般所采取的策略。