码迷,mamicode.com
首页 > 其他好文 > 详细

比较Class.getResource与Class.getClassLoader().getResource两种方式读取资源文件

时间:2018-07-11 00:12:06      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:sea   文件   span   main   system   res   code   git   get   

 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 }

 

比较Class.getResource与Class.getClassLoader().getResource两种方式读取资源文件

标签:sea   文件   span   main   system   res   code   git   get   

原文地址:https://www.cnblogs.com/756623607-zhang/p/9292176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!