【Java Web】——配置檔案的格式之xml和properties的區分
【何為配置檔案】
百度百科解釋:使用者配置檔案就是在使用者登入電腦時,或是使用者在使用軟體時,軟體系統為使用者所要載入所需環境的設定和檔案的集合。它包括所有使用者專用的配置設定,如程式專案、螢幕顏色、網路連線、印表機連線、滑鼠設定及視窗的大小和位置等。
而在我們的專案中的配置檔案一般儲存的是專案啟動所需的環境設定,例如資料庫驅動,使用者名稱以及密碼等。而在我們做專案的時候,配置檔案一般為字尾名是.xml或者是.properties的檔案,當然兩者的共同點就是儲存專案啟動所需的環境設定啦!今天我們主要對比一下他們之間的不同。
【看外表】
1、sys-config.xml
2、sys-config.properties
【對比】從表面上看,.xml格式的要比.properties格式的結構要清晰一些,而.properties檔案要比.xml檔案結構要簡單一些。
【看內涵】
1、從結構上來說:
.xml檔案主要是樹形結構。
.properties檔案主要是以key-value鍵值對的形式存在。
2、從靈活程度上來說:
.xml格式的檔案要比.properties格式的檔案更靈活一些
.properties格式的檔案已鍵值對形式存在,主要就是賦值,而且只能賦值,不能夠進行其他的操作。
.xml格式的檔案可以有多種操作方法,例如新增一個屬性,或者做一些其他的定義等。
3、從使用便捷程度來說:
.properties格式的檔案要比.xml檔案配置起來簡單一些。
配置.properties只需要簡單的getProperty(key)方法或者setProperty(key,value)方法就可以讀取或者寫入內容;
配置.xml檔案的時候通常要檢視文件,因為配置比較繁瑣,花費時間長才可以配置完整。
4、從應用程度上來說:
.properties檔案比較適合於小型簡單的專案。
.xml檔案適合大型複雜的專案,因為它比較靈活。
【程式碼實現:配置檔案的寫入與讀取】
1、讀寫sys-config.properties檔案
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); Iterator<String> it=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); } } }
2、讀寫sys-config.xml檔案(以dom4j方法為例)
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(); } }
通過程式碼我們可以看出.properties檔案的讀取寫入還是比較簡單的,而.xml檔案的讀取和寫入就相對於複雜一些,不過它也挺容易理解的。
【總結】
在敲網上商城的時候好像用到過.properties檔案,那時候還很模糊,現在在做DRP,配置檔案用的是.xml格式的,而公司專案中的配置檔案是用的.properties格式的,就想著對比一下它們之間的不同。其實,配置檔案還有其他格式的,例如.ini格式的檔案,或者".cfg",".conf",".txt"等格式的檔案都可以作為配置檔案,只不過我接觸到的常見的是.xml和.properties檔案。
相關文章
- 【SSM框架整合】專案xml檔案、properties等檔案的配置SSM框架XML
- [XML與properties檔案]XML
- springboot 配置檔案 .properties和.yml的寫法區別Spring Boot
- web.xml檔案配置的說明WebXML
- Spring中注入List,Set,Map,Properties的xml檔案配置方法SpringXML
- java中讀取.properties配置檔案Java
- Office檔案的Open Xml 格式XML
- 解決properties、xml等配置檔案無法找到問題XML
- java進階(36)--IO和Properties聯合使用(配置檔案)Java
- Java 對 properties 檔案操作 (ResourceBundle 類和 Properties 類)Java
- Java讀取properties配置檔案工具包Java
- SpringBoot配置檔案使用yml格式時報錯,使用properties格式時正常Spring Boot
- xml是什麼格式的檔案 xml檔案怎麼開啟XML
- web.xml檔案的作用WebXML
- Maven中的-D(Properties屬性)和-P(Profiles配置檔案)Maven
- Eclipse設定XML檔案的自動格式化配置EclipseXML
- 關於Java Web工程中web.xml檔案JavaWebXML
- 配置歸檔位置和檔案格式
- Struts2的properties配置檔案詳解
- springMVC---配置檔案解析(web.xml)SpringMVCWebXML
- web.xml 檔案 配置載入順序WebXML
- java讀取properties檔案Java
- java Properties獲取本地檔案的變數Java變數
- 關於.NET Framework提供的XML檔案格式FrameworkXML
- Java zip解壓,並遍歷zip中的配置檔案 .cfg或.propertiesJava
- 載入Java專案中scr下的properties檔案Java
- log4j.properties 配置檔案
- java IO流之檔案切割兩例(含Properties 用法)Java
- 在web.xml檔案中配置Servlet時,主要配置哪些資訊?WebXMLServlet
- java Spring讀取properties檔案的注意點JavaSpring
- Gradle 簽名的配置檔案 gradle.propertiesGradle
- Junit、Assert、內省、Properties類與配置檔案的使用
- gookit/properties - Java Properties 格式內容的解析,編碼解碼庫GoJava
- Nginx配置檔案的語法格式Nginx
- Maven的settings.xml檔案配置MavenXML
- 好程式設計師Java培訓分享Java讀寫Properties配置檔案程式設計師Java
- WebLogic NodeManager 配置檔案nodemanager.propertiesWeb
- SSM整合之使用配置類替換xml配置檔案(2)SSMXML