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

ClassLoader类加载器

时间:2020-02-28 13:35:47      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:内存   创建   load   etc   stream   构造   字节   需要   字符串   

 

 

获取src路径下的文件的方式
--->ClassLoader 类加载器:可以加载类的字节码文件进内存,随便一个字节码文件都可以

    |

  getClass():取得当前对象所属的Class对象   

     |
   getClassLoader():取得该Class对象的类装载器,类装载器负责从Java字符文件将字符流读入内存,并构造Class类对象,通过它可以得到一个文件的输入流

.class.getClassLoader();

方式一 文件的输入流:

ClassLoader类加载器:
  ①加载类的字节码文件进内存
  ②获取src资源文件的路径

①要获取ClassLoader需要获取对应的字节码文件的对象,随便一个字节码文件都可以

文件名.class.getClassLoader();

②ClassLoader有一个方法:传一个文件名就可以获取资源(以src相对的根路径)

getResource("文件名");返回的不是字符串,是URL对象

③URL表示统一资源定位符,可以定位文件的一个绝对路径

要获取字符串路径URL有一个方法getPath();返回一个path

④字节输入流导入path,pro.load接收字节流

例如:

//1.创建properties集合类。
Properties pro = new Properties();

           
//可以获取src资源文件的路径,要获取ClassLoader需要获取对应的字节码文件的对象
ClassLoader classLoader = JDBCUtils.class.getClassLoader();

//url统一资源定位符
URL res = classLoader.getResource("jdbc.properties");
 
//获取资源路径          
String path = res.getPath();
        //输出路径
        //System.out.println(path);

//2.加载文件。只能用try、catch。因为抛需要借助方法,写绝对路径还要改不合适
//            pro.load(new FileReader("src/jdbc.properties"));

pro.load(new FileReader(path));//加载文件。

方式二 字节输入流:好用,例如Druid连接技术基本使用

①直接用 getClassLoader().getResourceAsStream返回字节输入流

InputStream is = DruidDemo1.class.getResourceAsStream("druid.properties");

②用load加载文件,并且还会把属性值装载到集合

pro.load(is);
pro.load(DruidDemo1.class.getResourceAsStream("druid.properties"));

 

ClassLoader类加载器

标签:内存   创建   load   etc   stream   构造   字节   需要   字符串   

原文地址:https://www.cnblogs.com/rijiyuelei/p/12376759.html

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