• 比较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 }
  • 相关阅读:
    js中面向对象的写法
    js中防止全局变量被污染的方法
    移动端的头部标签和meta
    励志
    UX是什么?
    HTTP
    Django RestFramework (DRF)
    Vue(一)
    Vue-基础
    Vue-es6基础语法
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/9292176.html
Copyright © 2020-2023  润新知