zoukankan      html  css  js  c++  java
  • 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();
    
        }
    
    }
    

      

  • 相关阅读:
    又开始写代码了
    C# 调用office 2007 及 SaveAsPDFandXPS.exe 将Word、Excel、PPT转换为PDF文件
    64位机子上未能加载集
    在 vs 2003 转 2008 时WEB项目不能转换
    【第一弹】测试小学生,终于有博客了
    RobotFramwork + Appium+ Andriod 环境搭建
    写webpart
    backup
    获取MOSS当前登录用户信息
    rotate with different image(轮换显示图片)
  • 原文地址:https://www.cnblogs.com/shenhaha520/p/13600929.html
Copyright © 2011-2022 走看看