zoukankan      html  css  js  c++  java
  • 通过类加载器加载资源文件

    /*******************************************第一种方法***************************************************************/

    public class Demo {
        //资源文件可以通过类加载器的方式加载到内存中,这种方式的好处是程序不用明确制定配置文件的具体所在目录。程序可以自动的在
        //src目录下搜索该文件,并加载
        //采用下面这种方法还有一种弊端,就是,通过类加载器加载进来的配置文件不能太大
        //还有,类加载器加载类,类只加载一次,所以当该类被加载进内存后,如果此时有人修改了配置文件里面的配置信息,当再次访问该
        //类时,得到的配置信息并没有改变,还是原来的,如果我们要得到更新后的配置信息就不能够用这种方法来加载配置信息
        private static Properties prop = new Properties();
        static{
            InputStream in = Demo.class.getClassLoader().getResourceAsStream("db.properties");
            try {
                prop.load(in);
            } catch (IOException e) {
                //像数据库的配置文件,如果没加载到配置文件整个程序也就运行不起来了,所以这里异常在实际开发中就转换成初始化错误异常
                throw new ExceptionInInitializerError(e);
            }
        }
    }

    /*******************************************第二种方法***************************************************************/

    class Demo2{
        //这种方法的好处就是,当有人更改配置文件信息时,我再次访问的时候,得到的是更改后的信息
        private static Properties prop = new Properties();
        static{
            try {
            //先得到资源
            URL url = Demo2.class.getClassLoader().getResource("db.properties");
            //得到资源路径
            String path = url.getPath();
            //得到与该资源相关的流
            FileInputStream in = new FileInputStream(path);
            prop.load(in);
            } catch (IOException e) {
                //像数据库的配置文件,如果没加载到配置文件整个程序也就运行不起来了,所以这里异常在实际开发中就转换成初始化错误异常
                throw new ExceptionInInitializerError(e);
            }
        }
    }

  • 相关阅读:
    求Computational problems associated with Racah algebra
    病理情形
    扫描算法求最大子序列的一次简单非严格证明
    分治法求最大子序列,关于复杂度的一次弱推导
    VFP_等待 rar 命令结束
    Windows_解决win7开机画面变成vista画面的方法
    C#_WinForm的等待窗口
    C#_控件的缩写大全
    SQL Server 2008_基本安装说明
    C#_获取 SQL服务器列表
  • 原文地址:https://www.cnblogs.com/siashan/p/3911764.html
Copyright © 2011-2022 走看看