properties和xml的区别

【何为配置文件】

  百度百科解释:用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合。它包括所有用户专用的配置设置,如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等。

  而在我们的项目中的配置文件一般存储的是项目启动所需的环境设置,例如数据库驱动,用户名以及密码等。而在我们做项目的时候,配置文件一般为后缀名是.xml或者是.properties的文件,当然两者的共同点就是存储项目启动所需的环境设置啦!今天我们主要对比一下他们之间的不同。

【区别说明】

  properties配置文件,风格是一个属性对应于一个值(key = value)这样的键值匹对模式。这样给我的感觉就是每一行properties配置文件的键值,对应着一次赋值。事实上,如果你试验一下,在前后两行properties文件中给同一个属性赋不同值,得到的结果往往是属性是后面赋值的值。properties的局限性在于,只能处理赋值。

  xml配置文件则是一个树的结构,因此,可以处理各种各样定义好的情况,例如add一个属性之类的,这在properties配置文件中就没有办法实现了。

总体来说,properties配置文件易于理解配置了哪些信息,适合于简单的属性配置。

  xml配置文件结构清晰,但是内容比较繁琐,我配置的时侯通常需要查阅相关文档才能保证不会错漏。


【看外表】


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文件。
  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: propertiesxml和yml都是配置文件的格式,但它们有以下区别: 1. properties是最常见的配置文件格式,它使用键值对的形式来存储数据,每个键值对之间使用等号(=)分隔。它的语法简单,易于理解和使用。 2. xml是一种标记语言,它使用标签来描述数据。它的结构清晰,可以表示复杂的数据结构,但是语法相对复杂,不太适合人类阅读。 3. yml是一种基于缩进的格式,它使用缩进来表示数据的层次结构。它的语法简洁,易于阅读和维护,但是对于初学者来说可能不太友好。 总的来说,选择哪种配置文件格式取决于具体的需求和个人喜好。 ### 回答2: 在Spring开发过程中,开发者经常会遇到propertiesxml和yml文件。这三种文件都是用来配置应用程序的,但它们之间存在许多差异和优缺点。 首先,properties是一种键值对格式的文件,常用于存储应用程序的配置信息。它可以使用标准Java Properties类来读取和写入,可以通过Spring的PropertyPlaceholderConfigurer来获取属性。Properties文件易于阅读和修改,因此它是一种流行的配置文件。 其次,XML是一种用于描述和传输数据的标记语言。XML通常用于配置Spring应用程序的Bean。Spring通过读取XML文件来装配Bean,以便在运行时使用。XML支持通过嵌套标记表示复杂的Bean配置关系。同时,XML还可以使用Spring的比较新的注解和JavaConfig进行替换。 最后,YAML(或YML)是一种基于缩进方式表示数据的文件格式。YAML的语法简单明了,易于阅读和修改,并且可以表示复杂的数据结构。YAML支持标准的键值对格式,也支持数组和嵌套对象。Spring Boot采用YAML来配置应用程序和自动配置。 总之,三种配置方式各有优缺点,开发人员可以根据具体需求选择合适的配置方式。在实际应用中,一般使用xml和yml进行配置。因为xml配置更加灵活,yml配置采用了表格式的缩进方式,以更直观、易懂的方式展示,所以显得更加简洁易懂。同时,在开发中,属性文件仍然是一个轻便的、快速的配置方法,可以在项目开发过程中使用,比如快速进行开发环境的配置,运行时配置等场合。 ### 回答3: 在Spring框架中,配置文件有三种格式:propertiesXML和YAML。这三种配置格式都可以实现配置文件的配置信息,但是三种格式在语法方面、使用场景和写法方面都有所不同。 首先,properties格式是一种键值对格式的配置文件,通常用于简单的配置。properties格式文件的每一行都是一个键值对,以等号(=)作为分隔符,键和值之间没有空格。例如: ``` jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test jdbc.username=root jdbc.password=123456 ``` 而XML格式则是一种基于标签的配置文件,可以表示更为复杂的结构化数据,常用于Spring的配置文件。XML文件需要遵循XML标准。例如: ``` <beans> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> </beans> ``` YAML格式是一种轻量级的、人类可读的数据格式,常用于配置文件和数据序列化。YAML使用缩进表示层次关系,省略了大量的标签,使得文件可读性更高。例如: ``` dataSource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: 123456 ``` 在使用上,properties适合简单、轻量的配置,且文件格式需要严格遵循键值对格式。XML适合在复杂、结构化的配置内容上使用。而YAML则适合简洁、易读的配置文件,同时支持更丰富的数据结构,支持嵌套、数组等。总的来说,三种格式都各有优劣,使用时需要根据具体情况选择适合的格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值