• Java 读取 .properties 配置文件的几种方式


    没啥说的,直接上代码。

    package com.iflytek.jtcn.service.impl;
    
    import org.elasticsearch.client.Client;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Properties;
    import java.util.ResourceBundle;
    
    public class PropertiesTest {
    
        public static void readProp1() throws Exception {
            Properties prop = new Properties();
            prop.load(new InputStreamReader(Client.class.getClassLoader().getResourceAsStream("application.properties"), "UTF-8"));
            String linuxIp = (String) prop.get("linux.ip");
            System.out.println("linuxIp:" + linuxIp);
        }
    
        /**
         * 基于ClassLoder读取配置文件
         * 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便。
         */
        public static void readProp2() throws Exception {
            Properties properties = new Properties();
            // 使用ClassLoader加载properties配置文件生成对应的输入流
            InputStream in = PropertiesTest.class.getClassLoader().getResourceAsStream("application.properties");
            // 使用properties对象加载输入流
            properties.load(in);
            //获取key对应的value值
            String linuxIp = properties.getProperty("linux.ip");
            System.out.println("linuxIp:" + linuxIp);
        }
    
        /**
         * 基于 InputStream 读取配置文件
         * 绝对路径
         * 注意:该方式的优点在于可以读取任意路径下的配置文件
         */
        public static void readProp3() throws Exception {
            Properties properties = new Properties();
            // 使用InPutStream流读取properties文件   //使用绝对路径
            BufferedReader bufferedReader = new BufferedReader(new FileReader("src/main/resources/application.properties"));
            properties.load(bufferedReader);
            // 获取key对应的value值
            String linuxIp = properties.getProperty("linux.ip");
            System.out.println("linuxIp:" + linuxIp);
        }
    
    
        /**
         * 通过 java.util.ResourceBundle 类来读取,这种方式比使用 Properties 要方便一些
         *
         * 通过 ResourceBundle.getBundle() 静态方法来获取(ResourceBundle是一个抽象类),
         *  这种方式来获取properties属性文件不需要加.properties后缀名,只需要文件名即可
         *
         * */
        public static void readProp4() {
            //application为属性文件名,如果是放在src下,直接用application即可,放在其他包路径下需要用绝对路径
            ResourceBundle resource = ResourceBundle.getBundle("application");
            String linuxIp = resource.getString("linux.ip");
            System.out.println("linuxIp:" + linuxIp);
        }
    
    
        public static void main(String[] args) throws Exception {
            //readProp1();
            //readProp2();
            //readProp3();
            readProp4();
    
        }
    
    }
    

      

  • 相关阅读:
    scala 数据结构(七 ):集 Set
    scala 数据结构(六):映射 Map
    scala 数据结构(五):队列 Queue
    scala 数据结构(四):列表 List
    scala 数据结构(三):元组Tuple
    scala 数据结构(二):数组
    scala 数据结构(一):数据结构简介
    Scala 面向对象(十三):隐式转换和隐式参数
    vba报表制作
    Apache与Nginx
  • 原文地址:https://www.cnblogs.com/shenhaha520/p/13600929.html
Copyright © 2020-2023  润新知