zoukankan      html  css  js  c++  java
  • ClassLoader类加载器

    获取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"));
  • 相关阅读:
    字符串比较,栈溢出引起的程序bug
    C语言实现的矩阵乘法运算器
    n阶魔方阵(奇数阵)的输出
    文件的上传和下载---以图片为例
    数据列表的分页显示---前端及后台
    表单重复提交的解决方法
    JAVA基础----持续更新
    Servlet---基础、转发重定向、编码问题解析
    JDBC的链接及封装
    com.mysql.jdbc.connection和java.sql.connection的区别
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12376759.html
Copyright © 2011-2022 走看看