通常情況下,我們會在一些配置文件文件中配置一些屬性。如:


indexPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\lucene\\index
imgUploadPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\attachedImg
imgPath=http\://192.183.3.207/ipost_stage/attachedImg
adminEmail=
pageSize=5
normalImgSize=250
smallImgSize=100
通過打開編譯后的classes目錄(類路徑目錄)

那么可以通過工具類來實現對這個配置文件的讀寫。
首先建立一個常量類
/**
* 常量類
*/
public class ConfigConstants {
//系統編碼
public static final String CHARSET = "UTF-8";
//系統配置文件的路徑
public static final String SYSCONFIG_PATH = "/sysConfig.properties";
}
然后通過一個工具類類操作
package com.myProject.common;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Properties;
import com.myProject.utils.DateUtils;
/**
* 讀取公共的配置文件
*/
public class SysConfig {
private static Properties sysConfig = new Properties();
static { //讀取配置文件
InputStream inputStream = SysConfig.class
.getResourceAsStream(ConfigConstants.SYSCONFIG_PATH);
try {
sysConfig.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//根據屬性讀取配置文件
public static String getProperty(String key){
return sysConfig.getProperty(key);
}
//根據屬性寫入配置文件
public static void setProperty(String key,String value){
sysConfig.setProperty(key, value);
}
}
測試類如下:
package com.myProject.test;
import com.myProject.common.SysConfig;
public class ConfigConstantTest {
public static void main(String[] args) {
String aa = SysConfig.getProperty("testConstant");
System.out.println(aa);
}
}
結果為:66
如果在maven項目中,常量類和工具類,測試類不變。唯一要變的就是系統配置文件的路徑。那么怎么判斷這里路徑怎么寫呢?
唯一的判斷依據就是編譯后的路徑位置。
在非maven項目中,直接看classes中的文件相對位置:
/sysConfig.properties就是直接定位到classes目錄,然后在此目錄中尋找sysConfig.properties文件。
在maven項目中,則需要build之后看target目錄中的classes目錄,然后在此目錄中尋找sysConfig.properties文件。

當然,方法有相對路徑和絕對路徑兩種。
絕對路徑:
則是這么配置:
| /** * 絕對路徑配置:SYSCONFIG_PATH "/com/hori/bigData/resources/config.properties" */ |
相對路徑是相對於常量類而言的,則是這么配置:
| /** * 相對路徑配置:SYSCONFIG_PATH = "..\\resources\\config.properties" */ |
當然,考慮到windows和linux的兼容性,把 '/'換成‘\\’即可
