写了一个txt格式的配置文件。感觉让别人修改起来不是很清晰,于是选择使用XML格式文件。
首先了解下XML基本的语法:xml是一种标记语言,跟HTML类似。其设计宗旨是传输数据而非显示数据。
1:XML的所有元素都必须关闭标签。
2:XML对大小写敏感。
3:XML的属性值必须加引号。
4:把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
5:XML 的元素是可扩展的。
6:区分属性和元素。两者可以灵活转换。
7:XML必须有根元素。
下面说说XmlPull,百度一下和SAX,DOM这些的区别,巴拉巴拉。。。优势还是有的,难怪Google会用到Android上。
来个小例子测试下:
Test.java
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class Test {
public static void creatBatFile() throws IOException, XmlPullParserException {
String xml = read(new File(".\\sql\\sqlConfig.xml"));
ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes());
InputStreamReader in = new InputStreamReader(bin);
//KXmlParser parser = new KXmlParser();
XmlPullParserFactory pullFactory = XmlPullParserFactory.newInstance();
XmlPullParser parser = pullFactory.newPullParser();
try {
parser.setInput(in);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = parser.getName();
if (eventType == parser.START_TAG) {
if (nodeName.equals("databaseName")) {
String dataBaseName = parser.nextText();
System.out.println(dataBaseName);
} else if (nodeName.equals("userId")) {
String userId = parser.nextText();
System.out.println(userId);
} else if (nodeName.equals("passWord")) {
String password = parser.nextText();
System.out.println(password);
} else if (nodeName.equals("path")) {
String mysqlPath = parser.nextText();
System.out.println(mysqlPath);
}
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
public static String read(File src) {
StringBuffer res = new StringBuffer();
String line = null;
try {
BufferedReader reader = new BufferedReader(new FileReader(src));
while ((line = reader.readLine()) != null) {
res.append(line + "\n");
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return res.toString();
}
public static void main(String[] args) throws IOException, XmlPullParserException {
creatBatFile();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- 该文件为数据库模块配置文件 -->
<sqlConfig>
<databaseName>DATA</databaseName>
<userId>root</userId>
<passWord>123456</passWord>
<path>"C:\Program Files\MySQL\MySQL Server 5.0\bin"</path>
</sqlConfig>
运行结果
DATA
root
123456
"C:\Program Files\MySQL\MySQL Server 5.0\bin"