java xml作为配置文件,读取

  每个项目都需要配置文件来把可变的东西抽出来,方便程序的开发和维护:

  自己编写了一个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;
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值