Intellij Idea Javaweb 目录结构及获取项目内资源

获取项目内资源文件

getResource(""); 返回的是URL对象,路径是当前Class这个类所在包的位置
getResource("/"); 返回的是URL对象,返回classpath路径

下例: 其中 Project为工程名

Project

  • src

    • action
    • test
      • demo.txt
      • FilePathTest.java
  • production

    • Project
      • src
        • action
        • test
          • demo.txt
          • FilePathTest.class

通过ClassFilePathTest.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

你可能感兴趣的:(JavaEE)