百度百科解释:用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合。它包括所有用户专用的配置设置,如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等。
而在我们的项目中的配置文件一般存储的是项目启动所需的环境设置,例如数据库驱动,用户名以及密码等。而在我们做项目的时候,配置文件一般为后缀名是.xml或者是.properties的文件,当然两者的共同点就是存储项目启动所需的环境设置啦!今天我们主要对比一下他们之间的不同。
【区别说明】
properties配置文件,风格是一个属性对应于一个值(key = value)这样的键值匹对模式。这样给我的感觉就是每一行properties配置文件的键值,对应着一次赋值。事实上,如果你试验一下,在前后两行properties文件中给同一个属性赋不同值,得到的结果往往是属性是后面赋值的值。properties的局限性在于,只能处理赋值。
xml配置文件则是一个树的结构,因此,可以处理各种各样定义好的情况,例如add一个属性之类的,这在properties配置文件中就没有办法实现了。
总体来说,properties配置文件易于理解配置了哪些信息,适合于简单的属性配置。xml配置文件结构清晰,但是内容比较繁琐,我配置的时侯通常需要查阅相关文档才能保证不会错漏。
package testXMLDemo; import java.io.*; import java.util.Iterator; import java.util.Properties; /** * 读写Properties属性文件 * Created by Cindy on 2016/9/16. */ public class propertiesDemo { public static void main(String [] args) throws IOException{ //readProperties(); writeProperties(); }/** * 读取properties属性文件 */ public static void readProperties()throws IOException{ Properties prop=new Properties(); FileInputStream inputFile=new FileInputStream("src/sys-config.properties"); prop.load(inputFile); Iteratorit=prop.stringPropertyNames().iterator(); while(it.hasNext()){ String key=it.next(); System.out.println(key+":"+prop.getProperty(key)); } inputFile.close(); }
/**
* 生成properties属性文件
*/
public static void writeProperties() {
Properties prop=new Properties();
try{
//FileOutputStream oFile=new FileOutputStream(“sys-config.properties”,true);
FileOutputStream oFile=new FileOutputStream(new File(“src/sys-config.properties”),true);
prop.setProperty(“driver-name”,“oracle.jdbc.driver.OracleDriver”);
prop.setProperty(“url”,“jdbc:oracle:thin:@localhost:1521:ORCL”);
prop.setProperty(“user-name”,“drp1”);
prop.setProperty(“password”,“drp1”);
prop.store(oFile,“sys-config”);
oFile.close();
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
}
}
package testXMLDemo; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.List; /** * DOM4J 读写XML * Created by Cindy on 2016/9/16. */ public class dom4JDemo {
/**
* 生成XML文件
/
public static void generateDocument(){
Document document = DocumentHelper.createDocument(); //创建文档对象
Element catalogElement=document.addElement(“catalog”); //创建元素
Element journalElement=catalogElement.addElement(“journal”);
Element articleElement=journalElement.addElement(“article”);
Element titleElement=articleElement.addElement(“title”);
titleElement.setText(“Java Configuration with XML Schema”); //设置元素内容值
Element authorElement=articleElement.addElement(“author”);
Element firstElement=authorElement.addElement(“first”);
firstElement.addText(“Han”);
Element lastElement=authorElement.addElement(“last”);
lastElement.addText(“Cindy”);
try{
XMLWriter output =new XMLWriter(new FileWriter(new File(“D:/catalog.xml”))); //创建输出对象
output.write(document); //将文档对象写入输出对象中
output.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
* 读取XML文件
@throws DocumentException
*/
public static void getXML() throws DocumentException {
SAXReader reader=new SAXReader();
Document document=reader.read(new File(“src/sys-config.xml”)); //获取文档对象
Element node=document.getRootElement(); //获得根节点
Element dbinfoElement=node.element(“db-info”); //获得元素节点
Element drivernameElement=dbinfoElement.element(“driver-name”);
Element urlElement=dbinfoElement.element(“url”);
Element usernameElement=dbinfoElement.element(“user-name”);
Element passwordElement=dbinfoElement.element(“password”);
String drivername=drivernameElement.getText(); //获得节点内容
String url=urlElement.getText();
String username=usernameElement.getText();
String password=passwordElement.getText();
System.out.println(drivername);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
public static void main(String [] args) throws DocumentException {
//generateDocument();
getXML();
}
}