比较Class.getResource与Class.getClassLoader().getResource两种方式读取资源文件
1 /** 2 * @author zhangboqing 3 * @date 2018/7/10 4 */ 5 public class FileDemo { 6 7 8 public static void main(String[] args) { 9 // demo1(); 10 // demo2(); 11 12 // demo3(); 13 // demo4(); 14 } 15 16 17 //===================================================== 18 // 1.Class.getResource(String path) 19 //===================================================== 20 //Class.getResource和Class.getResourceAsStream在使用时,路径选择上是一样的。 21 //path不以’/'开头时,默认是从此类所在的包下取资源; 22 //path 以’/'开头时,则是从ClassPath根下获取; 23 24 private static void demo1() { 25 System.out.println(FileDemo.class.getResource("")); 26 System.out.println(FileDemo.class.getResource("/")); 27 28 //file:/Users/zhangboqing/Software/MyGithub/java_knowledge_sea/java_base/target/classes/com/zbq/base/file/ 29 //file:/Users/zhangboqing/Software/MyGithub/java_knowledge_sea/java_base/target/classes/ 30 } 31 private static void demo2() { 32 // 当前类(class)所在的包目录 33 System.out.println(FileDemo.class.getResource("")); 34 // class path根目录 35 System.out.println(FileDemo.class.getResource("/")); 36 37 // TestMain.class在com.zbq.base.file包中 38 // 2.properties 在com.zbq.base.file包中 39 System.out.println(FileDemo.class.getResource("2.properties")); 40 41 // FileDemo.class在com.zbq.base.file包中 42 // 3.properties 在com.zbq.base.file.demo包中 43 System.out.println(FileDemo.class.getResource("demo/3.properties")); 44 45 // FileDemo.class在com.zbq.base.file包中 46 // 1.properties 在(class根目录) 47 System.out.println(FileDemo.class.getResource("/1.properties")); 48 } 49 50 //====================================================================== 51 // 2.Class.getClassLoader().getResource(String path) 52 //====================================================================== 53 //Class.getClassLoader().getResource和Class.getClassLoader().getResourceAsStream在使用时,路径选择上也是一样的 54 //path不能以’/'开头时; 55 //path是从ClassPath根下获取; 56 57 private static void demo3() { 58 FileDemo t = new FileDemo(); 59 System.out.println(t.getClass()); 60 System.out.println(t.getClass().getClassLoader()); 61 System.out.println(t.getClass().getClassLoader().getResource("")); 62 System.out.println(t.getClass().getClassLoader().getResource("/"));//null 63 } 64 65 private static void demo4() { 66 FileDemo t = new FileDemo(); 67 System.out.println(t.getClass().getClassLoader().getResource("")); 68 69 System.out.println(t.getClass().getClassLoader().getResource("1.properties")); 70 System.out.println(t.getClass().getClassLoader().getResource("com/zbq/base/file/2.properties")); 71 System.out.println(t.getClass().getClassLoader().getResource("com/zbq/base/file/demo/3.properties")); 72 } 73 }
你投入得越多,就能得到越多得价值
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步