• [java学习点滴]PropertiesUtil 读取properties配置帮助类


      1 package com.hager.util;
      2 
      3 import java.io.File;
      4 import java.io.FileInputStream;
      5 import java.io.IOException;
      6 import java.io.InputStream;
      7 import java.util.Map;
      8 import java.util.Properties;
      9 
     10 /**
     11  * @Author wzh
     12  * @Date 2017/1/16.
     13  * @Version V1.0 15  * @Description 读取properties配置帮助类
     16  */
     17 public class PropertiesUtil {
     18 
     19 
     20     private PropertiesUtil() {
     21     }
     22 
     23     /**
     24      * 读取properties文件
     25      *
     26      * @param file 文件路径
     27      * @return 返回properties 对象
     28      */
     29     public static Properties fromFile(String file) {
     30         InputStream stream = null;
     31 
     32         try {
     33             stream = new FileInputStream(new File(file));
     34             return fromStream(stream);
     35         } catch (IOException e) {
     36             throw new RuntimeException(e);
     37         } finally {
     38             close(stream);
     39         }
     40     }
     41 
     42     /**
     43      * 读取properties文件
     44      *
     45      * @param file 文件路径
     46      * @return 返回properties 对象
     47      */
     48     public static Properties fromClasspath(String file) {
     49         InputStream stream = null;
     50         try {
     51             stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(file);
     52             return fromStream(stream);
     53         } catch (Exception e) {
     54             throw new RuntimeException(e);
     55         } finally {
     56             close(stream);
     57         }
     58     }
     59 
     60     /**
     61      * convert stream  to properties
     62      *
     63      * @param stream InputStream
     64      * @return Properties
     65      * @throws IOException
     66      */
     67     private static Properties fromStream(InputStream stream) throws IOException {
     68         Properties dest = new Properties();
     69         Properties src = new Properties();
     70         src.load(stream);
     71 
     72         // 如果key value为字符串,需要trim一下
     73         for (Map.Entry<Object, Object> entry : src.entrySet()) {
     74             Object key = entry.getKey();
     75             Object value = entry.getValue();
     76 
     77             Object newKey = key;
     78             Object newValue = value;
     79             if (newKey instanceof String) {
     80                 newKey = key.toString().trim();
     81             }
     82 
     83             if (newValue instanceof String) {
     84                 newValue = value.toString().trim();
     85             }
     86 
     87             dest.put(newKey, newValue);
     88         }
     89 
     90         return dest;
     91     }
     92 
     93     /**
     94      * dispose stream
     95      *
     96      * @param stream InputStream
     97      */
     98     private static void close(InputStream stream) {
     99         if (stream != null) {
    100             try {
    101                 stream.close();
    102             } catch (IOException e) {
    103             }
    104         }
    105     }
    106 }

    配置文件:

    位于

    src/main/resources/test.properties;
    内容简单:
    test=aaa

    测试:

     1  @Test
     2     public void fromClasspath() throws Exception {
     3         String fileName = "test.properties";
     4 
     5         Properties properties = PropertiesUtil.fromClasspath(fileName);
     6         String values = properties.getProperty("test");
     7         System.out.println(JsonHelper.serialize(properties));
     8 
     9         Assert.assertEquals("aaa", values);
    10         Assert.assertNotNull(properties);
    11     }

    结果:

    {"test":"aaa"}
    
    Process finished with exit code 0
  • 相关阅读:
    期末作业验收
    SDN第五次上机作业
    个人作业——软件工程实践总结作业
    SDN第四次作业
    SDN第四次上机作业
    SDN第三次作业
    SDN第三次上机作业
    SDN第二次上机作业
    SDN第二次作业
    个人作业——软件产品案例分析
  • 原文地址:https://www.cnblogs.com/hager/p/6292230.html
Copyright © 2020-2023  润新知