1. 程式人生 > >讀取properties配置檔案的工具類

讀取properties配置檔案的工具類

一般小工程,properties配置檔案之間在src根目錄建立

比如data.properties,程式碼如下

<!-- 代理伺服器地址 -->
PROXY=192.168.0.1
<!-- 代理伺服器埠號 -->
PORT=8080
<!-- 登入代理的使用者名稱 -->
USERNAME=username
<!-- 登入代理的口令 -->
PASSWORD=password
<!-- 圖片儲存路徑 -->
imgPath=c:/xml/
<!-- xml檔名 -->
xmlName=UploadRequest.xml

<!-- 1. Build Fat Jar包含dom4j -->
<!-- 2. cmd - 生成的jar路徑下 java -jar xx.jar -->
<!-- properties配置檔案更新困難 -->

用於讀取資料的工具類如下寫:

package com.main.util;

import java.io.IOException;
import java.util.Properties;

/**
 * 
 * 讀取properties檔案的工具類
 *
 * @author 莫小哆_ly 2012-3-30
 */
public class Tools {
	private static Properties p = new Properties();

	/**
	 * 讀取properties配置檔案資訊
	 */
	static{
		try {
			p.load(Tools.class.getClassLoader().getResourceAsStream("data.properties"));
		} catch (IOException e) {
			e.printStackTrace(); 
		}
	}
	/**
	 * 根據key得到value的值
	 */
	public static String getValue(String key)
	{
		return p.getProperty(key);
	}
}

如此,呼叫配置檔案中常量的時候,只要呼叫getValue()方法即可,比如

Tools.getValue("PORT")

即 8080


========================================================================


另外,專案中也經常單獨將一部分功能獨立做Java Project,然後打成jar包供其他專案呼叫。如果jar包中需要讀取配置檔案資訊,則很少把該配置打進jar包,因為它不方便修改,更多都是採用jar包讀取外部配置檔案。

properties配置檔案從工程移除,先放在工程下、與src並列路徑。如圖


讀取配置檔案的工具類Tools做如下改動:

package com.main.util;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 
 * 讀取properties檔案的工具類
 * 
 * @author 莫小哆_ly 2012-3-30
 */
public class Tools {

    private static Properties p = new Properties();
    static {
        try {
            // System.getProperty("user.dir") 獲得專案的絕對路徑,然後拼裝配置檔案的路徑
            // 讀取系統外配置檔案 (即Jar包外檔案) --- 外部工程引用該Jar包時需要在工程下建立config目錄存放配置檔案
            String filePath = System.getProperty("user.dir") + "/config/data.properties";
            InputStream in = new BufferedInputStream(new FileInputStream(filePath));
            p.load(in);
        } catch (IOException e) {
            System.out.println("讀取配置資訊出錯!");
        }
    }

    /**
     * 根據key得到value的值
     */
    public static String getValue(String key) {
        return p.getProperty(key);
    }
}

打成jar包時,先移除config

利用Fat Jar打包,將生成的jar包與config資料夾放在同一路徑即可。