Class.getResource()的路径问题

参考文章:http://wenku.baidu.com/view/af298cea102de2bd96058826.html

ClassLoader提供了两个方法用于从装载的类路径中取得资源:   

  public URL getResource(String name); 

  public InputStream getResourceAsStream(String name); 

这两种方法在路径定义都是一样,只是获取的结果不同,下面就拿getResource来做例子:

比如我们有以下目录

 |--project

     |--src 
       |--javaapplication

             |--Test.java

             |--file1.txt

         |--file2.txt

     |--build  
       |--javaapplication

             |--Test.class

             |--file3.txt

       |--file4.txt

如果需要或许对应资源,方法如下:

文件file3.txt:

1. Test.class.getResource("file3.txt");

2. Test.class.getResource("/javaapplication/file3.txt")

3. Test.class.getClassLoader().getResource("javaapplication/file3.txt")

文件file4.txt:

1. Test.class.getResource("/file3.txt");

3. Test.class.getClassLoader().getResource("file3.txt")

文件file2.txt和file1.txt:

Class.getResource()就不太适用获取这两个文件了,如果能也很麻烦,这里只能是用绝对路径来定位了(获取项目路径,再进一步确定文件路径);


posted @ 2013-06-16 12:34  可可ing  阅读(314)  评论(0编辑  收藏  举报