Properties 和 ResourceBundle 读取配置文件

一、使用Properties类读取配置文件

 Properties props = new Properties();
    // 初始化Properties
    InputStream in = null;
        try {
        // 使用ClassLoader加载输入流
        in = ResourceUtil.class.getClassLoader().getResourceAsStream("application.properties");
        props.load(in);
    } catch (IOException e) {

    }finally {
        try {
            if(in != null)
                in.close();
        } catch (IOException e) {

            e.printStackTrace();
        }
    }

二、使用ResourceBundle 类读取配置文件

ResourceBundle resource = ResourceBundle.getBundle("application");

三、实例

  1.   项目目录
    application_zh_CN.properties文件下有:test= zh_CN
    application_en_US.properties文件下有:test= 123
    application.properties文件下有:test= 123
  2. ResourceUtil的代码如下:
    package com.example.springbootdemo;
    
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Locale;
    import java.util.Properties;
    import java.util.ResourceBundle;
    
    public class ResourceUtil {
        // 1、方法一:Properties + 输入流(getResourceAsStream)
        private static Properties props = new Properties();
        static {
            // 初始化Properties
            InputStream in = null;
            try {
                // 使用ClassLoader加载输入流
                in = ResourceUtil.class.getClassLoader().getResourceAsStream("application.properties");
                props.load(in);
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(in != null)
                        in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        // 2、方法二:ResourceBundle(更方便,推荐),初始化失败会报错
        private static ResourceBundle resource;
        private static ResourceBundle resource_zh;
        static {
            // 注意:这种方法不需要写文件的后缀
            // 1、获取以application_xx为前缀的文件,其中xx为本地的语言,如当前为zh(中文)
            resource = ResourceBundle.getBundle("application");
    
            // 2、获取application_zh_CN.properties文件
            Locale local = new Locale("en", "US"); // en
            resource_zh =  ResourceBundle.getBundle("application", local);
            System.out.println();
        }
    
    
        public static void main(String[] args) {
            System.out.println("props :" + props.getProperty("test"));
            System.out.println("resource :" + resource.getString("test"));
            System.out.println("resource_zh :" + resource_zh.getString("test"));
        }
    }
 
 
运行结果如下:

猜你喜欢

转载自blog.csdn.net/sinat_24044957/article/details/80561526