由于經常從文本讀寫屬性設置到代碼中,所以利用java的properties類帶取代對文件的操作。
首先建立properties文本文件并輸入
Host_name = database name...
username = 用戶名
password = 密碼
讀取properties文件的代碼
Properties props = new Properties();
props.load(new FileInputStream("./database.properties"));
hostname = props.getProperty("Host_name");
username = props.getProperty("User_name");
password = props.getProperty("Password");
這樣在code外部(在properties文本文件中)修改屬性后, 通過properties導入到代碼中對應的值里。
java properties 類
private FileOutputStream out;

/**

* 根據傳進的文件名載入文件

* @param fileName String

*/

public PropertiesUtil(String fileName) {

this.fileName=fileName;

File file = new File(fileName);

try {

in = new FileInputStream(file);

p = new Properties();

//載入文件

p.load(in);

in.close();

}

catch (FileNotFoundException e) {

System.err.println("配置文件config.properties找不到!!");

e.printStackTrace();

}

catch (Exception e) {

System.err.println("讀取配置文件config.properties錯誤!!");

e.printStackTrace();

}

}


/**

* 配置文件一律為config.propertities,并且統一放在web應用的根目錄下。

* @return String

*/

public static String getConfigFile(HttpServlet hs) {


return getConfigFile(hs,"config.properties");

}

/**

* 在servlet中使用,直接用this作為參數,HttpServlet類型

* 根據配置文件名從當前web應用的根目錄下找出配置文件

* @param hs HttpServlet

* @param configFileName String配置文件名字

* @return String

*/

public static String getConfigFile(HttpServlet hs, String configFileName) {

String configFile = "";

ServletContext sc = hs.getServletContext();

configFile = sc.getRealPath("/" + configFileName);

if (configFile == null || configFile.equals("")) {

configFile = "/" + configFileName;

}

return configFile;

}

/**

* jsp中用pageContext作參數

* @param hs PageContext

* @param configFileName String 配置文件名字

* @return String

*/

public static String getConfigFile(PageContext hs, String configFileName) {

String configFile = "";

ServletContext sc = hs.getServletContext();

configFile = sc.getRealPath("/" + configFileName);

if (configFile == null || configFile.equals("")) {

configFile = "/" + configFileName;

}

return configFile;

}


/**

* 列出所有的配置文件內容

*/

public void list() {

p.list(System.out);

}


/**

* 指定配置項名稱,返回配置值

* @param itemName String

* @return String

*/

public String getValue(String itemName){

return p.getProperty(itemName);

}


/**

* 指定配置項名稱和默認值,返回配置值

* @param itemName String

* @param defaultValue String

* @return String

*/

public String getValue(String itemName,

String defaultValue){

return p.getProperty(itemName,defaultValue);

}


/**

* 設置配置項名稱及其值

* @param itemName String

* @param value String

*/

public void setValue(String itemName,String value){

p.setProperty(itemName,value);

return;

}


/**

* 保存配置文件,指定文件名和抬頭描述

* @param fileName String

* @param description String

* @throws Exception

*/

public void saveFile(String fileName,String description)throws Exception{

try {

File f=new File(fileName);

out

= new FileOutputStream(f);

p.store(out, description);//保存文件

out.close();

}

catch (IOException ex) {

throw new Exception

("無法保存指定的配置文件:"+fileName);

}

}


/**

* 保存配置文件,指定文件名

* @param fileName String

* @throws Exception

*/

public void saveFile(String fileName)

throws Exception {

saveFile(fileName,"");

}


/**

* 保存配置文件,采用原文件名

* @throws Exception

*/

public void saveFile() throws Exception {

if(fileName.length()==0)

throw new Exception

("需指定保存的配置文件名");

saveFile(fileName);

}

/**

* 刪除一個屬性

* @param value String

*/

public void deleteValue(String value){

p.remove(value);

}

/**

* main method for test

* @param args String[]

*/

public static void main(String[] args) {

String file = "f:\\p.properties";

PropertiesUtil pu = new PropertiesUtil(file);

pu.list();

}

}
首先建立properties文本文件并輸入
Host_name = database name...
username = 用戶名
password = 密碼
讀取properties文件的代碼





這樣在code外部(在properties文本文件中)修改屬性后, 通過properties導入到代碼中對應的值里。
java properties 類





























































































































































































































































































































