获取项目内资源文件
getResource(""); 返回的是URL对象,路径是当前Class这个类所在包的位置
getResource("/"); 返回的是URL对象,返回classpath路径
下例: 其中 Project为工程名
Project
-
src
- action
- test
- demo.txt
- FilePathTest.java
-
production
- Project
- src
- action
- test
- demo.txt
- FilePathTest.class
- src
- Project
通过Class
在FilePathTest.java
中获取资源:
this.getClass().getResource("/").getPath();
// .../production/Project/
this.getClass().getResource("").getPath;
// ../production/Project/src/test/
this.getClass().getResource("demo.txt").getPath();
// 获取当前class文件所在目录test下的 demo.txt 文件
this.getClass().getResource("/demo.txt").getPath();
// 获取classpath 下的 demo.txt, 即 查找../production/Project 下是否有 demo.txt
通过ClassLoader
获取资源
this.getClass().getClassLoader().getResource("").getPath());
// 获取classpath, ../production/Project
this.getClass().getClassLoader().getResource("/").getPath());
// 报错
this.getClass().getClassLoader().getResource("/demo.txt").getPath();
// .../production/Project/src/test/demo.txt