PropertiesUtil 读取properties

package com.yun.util;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PropertiesUtil {

    private static Properties props;
    private static final String propertieFile = "/errorCode.properties";

    private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesUtil.class); 

    private PropertiesUtil() {

    }

    {
        try {
            props = new Properties();
            InputStream fis = getClass().getResourceAsStream(propertieFile);
            props.load(fis);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void readProperties(String fileName) {
        try {
            props = new Properties();
            InputStream fis = PropertiesUtil.class.getResourceAsStream(fileName);
            props.load(fis);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取某个属性
     * @throws UnsupportedEncodingException
     */
    public static String getProperty(String key) {
        String tmp = "";
        if (props == null) {
            readProperties(propertieFile);
        }
        try {

            if (props.getProperty(key) != null) {
                LOGGER.info("获取属性 {}",key);
                tmp = new String(props.getProperty(key).getBytes("ISO8859-1"), "UTF8");
                LOGGER.info("获取属性 {}:{}", key, tmp);
            }
            return tmp;
        } catch (UnsupportedEncodingException e) {
            LOGGER.info("编码格式不支持:{}",e.getMessage());
            return "";
        }
    }

    /**
     * 获取所有属性,返回一个map,不常用 可以试试props.putAll(t)
     */
    public Map getAllProperty() {
        if (props == null) {
            readProperties(propertieFile);
        }

        Map map = new HashMap();
        Enumeration enu = props.propertyNames();
        while (enu.hasMoreElements()) {
            String key = (String) enu.nextElement();
            String value = props.getProperty(key);
            map.put(key, value);
        }
        return map;
    }

    /**
     * 在控制台上打印出所有属性,调试时用。
     */
    public void printProperties() {
        props.list(System.out);
    }

    public static void main(String[] args) throws UnsupportedEncodingException {
        System.out.println(PropertiesUtil.getProperty("E0001"));
    }
}
时间: 2024-10-20 14:33:17

PropertiesUtil 读取properties的相关文章

java读取properties配置文件总结

java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1).使用getResourceAsStream()方法读取配置文件. (2).使用InputStream()流去读取配置文件. 注意:在使用getResourceAsStream()读取配置文件时,要特别注意配置文件的路径的写法. this.getClass.getResourceAsStream(f

java读取.properties文件及解决中文乱码问题

Java项目中有些信息(例如web的配置信息)可能要放在.properties文件中,那我们应该怎么来读取它们呢,下面给出一个工具类做一说明,并解决了中文乱码问题: 1.其中config.properties文件信息如下: name=\u843D\u82B1\u6709\u610Fwang王 str=\u6D41\u6C34\u65E0\u60C5 boolean=true 2.PropertiesUtil工具类读取.properties文件 import java.io.BufferedInp

读取.properties配置信息

package com.ctcti.webcallcenter.utils; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration;

从读取properties文件说开去,浅谈web容器中类加载器

今天刚好有人让我写个通过读取properties连接数据库的小demo. 汗啊,普通项目中可以使用的文件读取,在web项目中总报空指针异常. 查阅了资料明白,赶紧记录下来,希望遇到此类问题的童鞋能引起重视. 废话不说,直接进入主题! 代码清单1: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.io.InputStream; import java.util.Properties; import org.apache.log4

Spring用代码来读取properties文件

我们都知道,Spring可以@Value的方式读取properties中的值,只需要在配置文件中配置org.springframework.beans.factory.config.PropertyPlaceholderConfigurer <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

java读取.properties配置文件的几种方法

读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一.通过jdk提供的java.util.Properties类.此类继承自java.util.HashTable,即实现了Map接口,所以,可使用相应的方法来操作属性文件,但不建议使用像put.putAll这两个方法,因为put方法不仅允许存入String类型的value,还可以存入Object类型的.因此java.util.Properties类提供了getProperty()和setPr

Java中读取properties资源文件

一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String path:properties文件的路径 * @param String key: 获取对应key的属性 * @return String:返回对应key的属性,失败时候为空. */ public static String getPropertyByName1(String path,String

读取.properties配置文件(转载)

读取.properties 文件 配置文件的一种,内容以键值对的形式存在,且每个键值对独占一行.#号作为行注释的起始标志,中文注释会自动进行unicode编码.示例: # ip and port of server socket ip=127.0.0.1 port=9999 # error message msg=I'm sorry, bye bye! 通过properties对象操作 public class Demo{ public static void main(String[] arg