• JAVA读取PROPERTIES文件方式一


     1 import java.io.BufferedReader;
     2 import java.io.IOException;
     3 import java.io.InputStream;
     4 import java.io.InputStreamReader;
     5 import java.util.Properties;
     6 
     7 import org.apache.commons.logging.Log;
     8 import org.apache.commons.logging.LogFactory;
     9 
    10 /**
    11  * 配置文件读取工具
    12  */
    13 public class ConfigurableConstants
    14 {
    15 
    16     protected static final String PROPERTIES_PATH = "config.properties";
    17 
    18     protected static Log logger = LogFactory.getLog(ConfigurableConstants.class);
    19     protected static Properties p = new Properties();
    20     static
    21     {
    22         init(PROPERTIES_PATH);
    23     }
    24 
    25     /**
    26      * 静态读入属性文件到Properties p变量中
    27      */
    28     protected static void init(String propertyFileName)
    29     {
    30         InputStream in =  null;
    31         try
    32         {
    33             // class.getClassLoader()获得该class文件加载的web应用的目录,如WEB-INF/classes/就是根目录
    34             // getResourceAsStream(relativeFilePath):定位该文件且获得它的输出流
    35             in = ConfigurableConstants.class.getClassLoader().getResourceAsStream(propertyFileName);
    36             BufferedReader bf = null;
    37             if (in != null)
    38                 // load输出流到Properties对象中
    39                 // 因为字节流是无法读取中文的,所以采取reader把inputStream转换成reader用字符流来读取中文。
    40                 bf = new BufferedReader(new InputStreamReader(in));
    41             p.load(bf);
    42         }
    43         catch (IOException e)
    44         {
    45             logger.error("load " + propertyFileName + " into Constants error!");
    46         }
    47         finally
    48         {
    49             if (in != null)
    50             {
    51                 try
    52                 {
    53                     in.close();
    54                 }
    55                 catch (IOException e)
    56                 {
    57                     logger.error("close " + propertyFileName + " error!");
    58                 }
    59             }
    60         }
    61     }
    62 
    63     /**
    64      * 封装了Properties类的getProperty函数,使p变量对子类透明.
    65      *
    66      * @param key
    67      *            property key.
    68      * @param defaultValue
    69      *            当使用property key在properties中取不到值时的默认值.
    70      */
    71     public static String getProperty(String key, String defaultValue)
    72     {
    73         return p.getProperty(key, defaultValue).trim();
    74     }
    75 
    76 }
  • 相关阅读:
    【SpringBoot1.x】SpringBoot1.x 安全
    WebStorm快捷键(Mac版)
    iOS 容联离线消息推送
    iOS使用TestFlight进行内部和外部人员测试
    iOS Runtime常用方法整理
    模仿斗鱼直播
    一个很好用的侧滑框架ICSDrawerController实现的 QQ 侧滑及换肤功能
    swift3.0 项目引导页
    使用 swift3.0高仿新浪微博
    swift 监听键盘弹出的高度
  • 原文地址:https://www.cnblogs.com/stronghan/p/5608200.html
Copyright © 2020-2023  润新知