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);
            }
        }
    }

  • 相关阅读:
    app专项测试之稳定性测试-monkey测试
    Mac下Fiddler的安装启动。
    测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)
    mysql如何用sql语句修改表字段?
    VMware虚拟机出现“正在使用中”如何解决?
    Opencv2.1+vs2008生成不依赖编译环境的exe文件
    VS2008在win7下不时出现Microsoft Incremental Linker已停止工作
    没有找到opencv_core231d.dll运行结果不能显示
    Mat类型与IplImage类型之间相互转换
    获取当前可执行文件的路径(绝对路径)
  • 原文地址:https://www.cnblogs.com/siashan/p/3911764.html
Copyright © 2011-2022 走看看