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中反射機制
導語:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看java中反射機制,希望對大家有所幫助。Java中什麼是反射機制:(JavaReflactioninaction)Java反射...
-
計算機二級JAVA考試構建JAVA程序2017
很多人一見到説要編程就以為很難,其實只有一點一滴學知識點也不難,下面是小編整理的計算機二級JAVA考試構建JAVA程序介紹,歡迎閲讀!第一個javaapplicationjava程序分為javaapplication(java應用程序)和javaapplet(java小應用程序)兩種。下面讓我們編寫一個java應...
-
新手學習Java最高效的10個計劃
對於新手來説學習Java如同堵天書,下面是本站小編收集的關於新手學習Java最高效的10個計劃,希望可以為您的學習帶來幫助!計劃一:瞭解未來技術發展方向兩耳不聞窗外事,在如今是不合適的,尤其是在瞬息萬變的互聯網時代,作為一個開發者技術跟不上可以去專研,思想要跟不上,...
-
java system類使用方法示例
常用的方法:複製代碼代碼如下:longcurrentTimeMillis();獲取當前時間的毫秒值voidexit();終止當前正在運行的Java虛擬機。複製代碼代碼如下:publicstaticvoidMethod(){longl=entTimeMillis();tln(l);();}描述系統屬性信息:Propertiesroperties();該方法獲取的`信...