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")); }
  • 相关阅读:
    silverlight.js详解.
    Silverlight做随机图形
    腾讯与微软合作,准备应用Silverlight技术
    Flex的起步推动新语言学习
    微软Silverlight将支持DRM数字保护
    Kit 3D 更新
    用silverlight来开发简单的相册.
    加班一星期的结果
    构建Flex应用的10大误区
    ubuntu下SVN服务器安装配置 下的svn 常用命令
  • 原文地址:https://www.cnblogs.com/u1s1/p/12425562.html
Copyright © 2011-2022 走看看