每个项目都需要配置文件来把可变的东西抽出来,方便程序的开发和维护:
自己编写了一个xml文件读取类,并可以以字符串形式调用xml文件中的属性与其值,其实也可以,直接一个static函数直接获得属性与其值,然而,我没这么做。估计这么做会更好。不多说,就算是改也容易。先把source提供出来:
/*
* Property.java
*
* Created on 2008.7.11, am8:56
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package mail;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
/**
*
* @author user
*/
public class Property {
private Element _rootElement = null;
/** Creates a new instance of Property */
public Property() {
//get the current directory
File directory = new File("");
String pathStr = directory.getAbsolutePath();
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File(pathStr + "//" + CONSTANT.xmlFileName));
_rootElement = document.getDocumentElement();
} catch (Exception e) {
Logger.println("exception:" + e.getMessage());
}
}
/* get property with the specified name
* param: property name
* return: the value of the property
*/
public String getProperty(String propertyName){
try{
NodeList list = _rootElement.getElementsByTagName(propertyName);
if(list.getLength() == 0){throw new Exception("xml error: there is no such property /"" + propertyName + "/"");}
Element element = (Element) list.item(0);
return element.getChildNodes().item(0).getNodeValue();
}catch(Exception ex){
Logger.println(ex.getMessage());
return "";
}
}
/* factory of this class
* return the object of this class
*/
public static Property getInstance(){
Property _property = new Property();
return _property;
}
}