Java读取property配置文件

读取配置文件已经成了Java程序员工作的一项必备技能。

配置文件的优点:

可维护性好

怎么个可维护性好呢?

  1. 它会让程序中变化的地方很灵活的配置,不需要修改代码。
  2. Java程序部署到服务器上去之后就变成了class文件,修改困难,通过配置文件我们就可以灵活地改变程序中需要变化的地方。比如说写一个发送邮件的程序,就可以将收件人写在配置文件中,不必每次编译代码。
  3. 假如过了很久,项目经理觉得有些地方需要改,以发邮件为例,现在需要给大boss也发邮件,而自己手头又没有代码,通过配置文件只需要修改配置文件即可。

废话不多说,直接进入主题,如何通过Java读取配置文件,其实很简单。

配置文件

name=刘德华
pwd=123456

代码如下

package com.myutils.prop;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

public class PropertiesUtil {

    private static Properties _prop = new Properties();

    /**
     * 读取配置文件
     * @param fileName
     */
    public static void readProperties(String fileName){
        try {
            InputStream in = PropertiesUtil.class.getResourceAsStream("/"+fileName);
            BufferedReader bf = new BufferedReader(new InputStreamReader(in));
            _prop.load(bf);
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /**
     * 根据key读取对应的value
     * @param key
     * @return
     */
    public static String getProperty(String key){
        return _prop.getProperty(key);
    }
}

测试

package com.myutils.prop;

import org.junit.Test;

/**
 * Created by GWCheng on 2015/12/29.
 */
public class PropertiesUtilTest{

    @Test
    public void testReadProp() {
        PropertiesUtil.readProperties("test.properties");
        System.out.println(PropertiesUtil.getProperty("name"));
        System.out.println(PropertiesUtil.getProperty("pwd"));
    }
}

为什么没有设置值的方法呢?

因为配置文件一般都是只读的,需要设置的话,已经部署到服务器上去了,停掉服务,然后修改配置文件,就可以了。

读取配置文件的工具类先写到这里。

参考文献

  1. Java读取properties文件中文乱码问题解决 http://bu-choreography.iteye.com/blog/1136047