码迷,mamicode.com
首页 > 编程语言 > 详细

java 相对路径获取 -- getResource的应用

时间:2015-03-02 14:49:40      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

(一)函数:
    (1)   Class.getResource(String path)           
    (2)   Class.getClassLoader.getResource(String path)

其中(2)中 path不能以‘/‘开头
(1)中path 开头有无‘/‘ 均可,含义不同

(二)测试目录结构:

|--project

    |--src

        |--mytest

            |--RePathTest.java

            |--file1.txt

        |--file2.txt

    |--bin

        |--mytest

            |--RePathTest.class

            |--file3.txt

        |--file4.txt

(三)用法:
(2)中  默认是从ClassPath (即 bin 或 classes路径)下获取
本例中:
File file3 = new File(RePathTest.class.getClassLoader().getResource("mytest/file3.txt").getFile());  
File file4 = new File(RePathTest.class.getClassLoader().getResource("file4.txt").getFile());

(1)中 
a. 以‘/‘开头,而表示从ClassPath (即 bin 或 classes路径)下获取
本例中:
File file3 = new File(RePathTest.class.getResource("/mytest/file3.txt").getFile()); // 从classpath 即 bin下找 

b. 不以‘/‘开头,表示相对于 RePathTest.class 的路径
本例中:
File file3 = new File(RePathTest.class.getResource("file3.txt").getFile());  // 从 package mytest 包  找,相对于 .class(此处为  RePathTest.class )文件

(四) getResourceAsStream()   vs  getResouce()
getResourceAsStream()方法,参数是与getResouce()方法是一样的,它相当于你用getResource()取得File文件后,
再new InputStream(file)一样的结果

(五)补充
1. web中以 WEB-INF中classes文件为classpath目录
2. getResource 获取路径与 .class文件夹有关,与 .java文件夹无关

(六)测试
package mytest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class RePathTest {
    RePathTest Test = new RePathTest();
    public static void main(String[] argsthrows FileNotFoundException {
    File file3 = new File(RePathTest.class.getResource("file3.txt").getFile());
    //File file3 = new File(RePathTest.class.getResource("/mytest/file3.txt").getFile());
    //File file3 = new File(RePathTest.class.getClassLoader().getResource("mytest/file3.txt").getFile());
    
    FileReader fr = new FileReader(file3);
    BufferedReader br = new BufferedReader(fr);
    try {
        String line = br.readLine();
        while (line != null) {
            System.out.print(line);
            line = br.readLine();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    //File file4 = new File(RePathTest.class.getResource("/file4.txt").getFile());
    //File file4 = new File(RePathTest.class.getClassLoader().getResource("file4.txt").getFile());
    
    }
}  

参考:

java 相对路径获取 -- getResource的应用

标签:

原文地址:http://blog.csdn.net/youxin2012/article/details/44018097

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!