每个项目都需要配置文件来把可变的东西抽出来,方便程序的开发和维护:
自己编写了一个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; } }