1、新建一个Java项目;
2、在src/main/java下新建一个test包;
3、在test包下新建一个Test.java文件 和 file.txt 文件;
4、Test.java文件内容编写如下:
package test; import java.net.URL; public class Test { public static void main(String[] args) { URL url = Test.class.getResource("file.txt"); System.out.println(url); url = Thread.currentThread().getContextClassLoader().getResource("test/file.txt"); System.out.println(url); } }
打印结果是file.txt文件的绝对路径,如下:
file:/Users/lay-mac/Desktop/svn/ali-mine/web/chapter3/target/classes/test/file.txt file:/Users/lay-mac/Desktop/svn/ali-mine/web/chapter3/target/classes/test/file.txt
我们看到了以上两种调用getResource的方法:
1)Class调用
这种调用方式我们可以理解为相对于Test.class文件所在的位置
file:/Users/lay-mac/Desktop/svn/ali-mine/web/chapter3/target/classes/test/
拼接上
file.txt
2)classLoader调用
类加载器调用方式我们可以理解为相对于类路径的位置:
file:/Users/lay-mac/Desktop/svn/ali-mine/web/chapter3/target/classes/
拼接上
test/file.txt
注意:file.txt 和 text/file.txt 都不能在之前加上 " / ",这样会找不到从而返回null
原文地址:https://www.cnblogs.com/lay2017/p/8502700.html
时间: 2024-11-19 13:10:52