Java高级:怎样读取和处理XML的配置文件
来源:才华咖 本文已影响1.01W人
来源:才华咖 本文已影响1.01W人
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;
linux配置java环境变量详细步骤教程
java程序员学习Flex和BlazeDS有什么好处
关于java如何配置MyEclipse Maven环境具体方法
java.exe和javaw.exe的区别和使用方法示例
java如何通过url读取文件
XP如何配置JAVA环境变量
Java Servlet编程所需的软件及环境配置
java环境变量path和classpath的配置过程
关于JAVA的XML编程
Java怎么获取MAC地址
linux配置java环境变量过程详解
Java Tomcat和激活MyEclips的深入理解
将Sublime Text 2配置为Java的IDE的具体方法
java dom4j解析xml用到的方法有哪些
java环境变量设置Linux
Java读取xml文件的方法
java的String=a; a==null和a.equals(null)这两个判断有什么区别
怎样处理好和上司的关系
详解Java中的Lambda表达式
jQuery解析XML与传统JavaScript方法的差别
java中lambda表达式
java调用linux命令传输远程大文件
JAVA认证开源技术:关于Java的对象equals方法
解析Java中如何获取Spring中配置的bean
怎样设置文件夹密码
Java如何读取图片EXIF信息
关于JavaScript中call()和apply() 的一些理解
Java Ajax jsonp跨域请求详解
对Java中HashMap和TreeMap的区别的深入理解
PHP处理Ajax请求与Ajax跨域问题
Java读取邮件的方法
Java面试题JDBC能否处理Blob和Clob
Java import以及Java类的搜索路径
java处理BOM文本的方法
JAVA认证基础知识:Java获取当前的系统时间
Java中如何获取Spring中配置的bean
Java读取图片EXIF信息的代码
Java如何读取Jar中的资源
HTML5中Canvas的事件处理介绍
怎样写好文件