Java高級:怎樣讀取和處理XML的配置文件
Java高級:怎樣讀取和處理XML的配置文件呢?看了下面小編整理的內容你就知道怎麼解決您的問題了,希望對您有所幫助!更多內容請關注應屆畢業生考試網!
在我們的程序中,通常要有一些根據主機環境確定的變量.比如數據庫訪問用户名和密碼,不同的主機可能設置不一樣.只要更改XML配置文件,就可以正常運行.
localhost
sqlname
username
password
上面這個配置文件一般是放在tomcat的WEB-INF/classes目錄下.
我們編制一個Java程序直接讀取,將dbhost dbuser dbpassword提取出來供其他程序訪問數據庫用.
目前使用SAX比較的多,與DOM主要區別是 SAX是一行一行讀取XML文件進行分析,適合比較大文件,DOM是一次性讀入內存,顯然不能對付大文件.這裏我們使用SAX解析,由於SAX解析器不斷在發展,網上有不少文章是針對老版本的.如果你使用JDK1.4 ,可以參考 使用SAX處理XML文檔 一文.這裏的程序是根據其改進並且經過實踐調試得來的.
對上面讀取的Java程序:
import ibutes;
import ultHandler;
import xception;
import erties;
//使用DefaultHandler的好處 是 不必陳列出所有方法,
public class ConfigParser extends DefaultHandler {
////定義一個Properties 用來存放 dbhost dbuser dbpassword的值
private Properties props;
private String currentSet;
private String currentName;
private StringBuffer currentValue = new StringBuffer();
//構建器初始化props
public ConfigParser() {
s = new Properties();
}
public Properties getProps() {
return s;
}
//定義開始解析元素的方法. 這裏是將中的名稱xxx提取出來.
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
te(0, th());
entName =qName;
}
//這裏是將之間的值加入到currentValue
public void characters(char[] ch, int start, int length) throws SAXException {
nd(ch, start, length);
}
//在遇到結束後,將之前的名稱和值一一對應保存在props中
public void endElement(String uri, String localName, String qName) throws SAXException {
(werCase(), ring()());
}
}
上面的這個解析程序比較簡單吧? 其實解析XML就是這麼簡單.
現在我們已經將dbhost dbuser dbpassword的值localhost sqlname username password提取了出來.但是這只是在在解析器內部,我們的程序還不能訪問.需要再編制一個程序.
import erties;
import arser;
import arserFactory;
import ;
public class ParseXML{
//定義一個Properties 用來存放 dbhost dbuser dbpassword的'值
private Properties props;
-
如何學好Java語言編程
決定好想學什麼編程語言了嗎,現在就讓我們開始學習吧。所有你需要做的就是打開一本書,然後開始閲讀,是這樣的嗎?不全是這樣的。learn-first我會給出學習第一門編程語言的理想方法佈局,你不僅應該學習這個佈局方法,還應該享受精通它——如果不能掌握的話。學習第一門...
-
Javascript和Java語言間的異同比較
雖然Javascript與Java有緊密的聯繫,但卻是兩個公司開發的不同的兩個產品。那麼js和java有什麼關係,兩種語言的不同點是什麼呢?以下是本站小編搜索整理的關於Javascript和Java語言間的異同比較,供參考學習,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關...
-
計算機二級考試Java精選訓練題
下面是應屆畢業生考試網小編搜索整理的計算機二級考試Java精選訓練題,希望對大家有所幫助。[簡答題]本題中,在下畫線上填寫代碼,指定變量b為字節型,變量f為單精度實型,變量l為64位整型。publicclassjaval{publicstaticvoidmain(String[-]args){b=49;f=8.9f;l=0xfedl...
-
經典的Java main方法面試題10個
在java中,main()方法是java應用程序的入口方法。本文是本站小編搜索整理的關於經典的Javamain方法面試題10個,特別適合參加Java面試的朋友閲讀,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!1.不用main方法如何定義一個類?不行,沒有main方...