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()就不太适用获取这两个文件了,如果能也很麻烦,这里只能是用绝对路径来定位了(获取项目路径,再进一步确定文件路径);