zoukankan      html  css  js  c++  java
  • properties文件加载的六种方法

    加载项目properties文件的六种方法,其中四种都是通过Properties类加载inputStream读取,后两种通过ResourcesBundle类和其子类来加载

        /**
         * 通过inputStream加载配置文件到properties对象
         */
    
        private void getPropertiesByInputStream_One() throws IOException {
            //全路径
            String path = "/Users/grahamliu/idea-workspace/AppiumAIDemo/src/main/resources/appium.properties";
            Properties properties = new Properties();
    
            InputStream inputStream = new BufferedInputStream(new FileInputStream(path));
            properties.load(inputStream);
    
            System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName());
    
            System.out.println(properties.getProperty("appiumUrl"));
        }
    
        /**
         * 通过class类getResourceAsStream方法加载配置文件流
         */
        private void getPropertiesByInputStream_Two() throws IOException {
            //路径/开头,表示从classpath下取路径
    //        String path = "/appium.properties";
            //路径不为/开头,从当前类所在包下取
            String path = "appiumRelative.properties";
    
            Properties properties = new Properties();
            InputStream inputStream = this.getClass().getResourceAsStream(path);
            properties.load(inputStream);
    
            System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName());
    
            System.out.println(properties.getProperty("appiumUrl"));
        }
    
        /**
         *通过class的类加载器getClassLoader加载配置
         */
        private void getPropertiesByInputStream_Three() throws IOException{
            //getClassLoader默认加载路径就是classpath,规定不需要用/开头文件路径
            String path = "appium.properties";
    
            Properties properties= new Properties();
            InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path);
            properties.load(inputStream);
    
            System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName());
    
            System.out.println(properties.getProperty("appiumUrl"));
        }
    
        /**
         * 通过ClassLoader类静态方法加载
    * 2020.11.3 最新经验,该方法可能在web项目,或者mvn -exec:运行时读取不到配置文件,需要用上面的方法
    */ private void getPropertiesByInputStream_Four() throws IOException{ //ClassLoader默认加载路径就是classpath,规定不需要用/开头文件路径 String path = "appium.properties"; Properties properties = new Properties(); InputStream inputStream = ClassLoader.getSystemResourceAsStream(path); properties.load(inputStream); System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName()); System.out.println(properties.getProperty("appiumUrl")); } /** * 通过ResourceBundle的构造方法getBundle */ private void getPropertiesByResourceBundle_Five(){ //这个getBundle()方法的参数相对同目录路径,并去掉.properties后缀,否则将抛异常 String path = "appium"; ResourceBundle resourceBundle = ResourceBundle.getBundle(path); System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName()); System.out.println(resourceBundle.getString("appiumUrl")); } /** * 通过ResourceBundle子类PropertyResourceBundle加载inputStream */ private void getPropertiesByResourceBundle_Six() throws IOException{ String path = "/Users/grahamliu/idea-workspace/AppiumAIDemo/src/main/resources/appium.properties"; InputStream inputStream = new BufferedInputStream(new FileInputStream(path)); ResourceBundle resourceBundle = new PropertyResourceBundle(inputStream); System.out.println(this.getClass().getName()+"+"+Thread.currentThread().getStackTrace()[1].getMethodName()); System.out.println(resourceBundle.getString("appiumUrl")); }
  • 相关阅读:
    1.5.2 在IIS上配置ASP.NET(转)
    数据结构二叉树的基本编码(原创)
    真正的AmChart破解教程和RadarChart使用(转)
    C#遍历文件中的文件或者文件夹(转)
    [Android]在代码中创建布局
    [AS]AIR 中获取本地 IP API
    [Android][转]Android获取网页数据的方法总结
    [AS][iOS]AIR应用在iOS中,home键退出
    [Android]ListView学习(一)
    [Android]TextView 单行文本过长显示的属性
  • 原文地址:https://www.cnblogs.com/u1s1/p/12425562.html
Copyright © 2011-2022 走看看