• Properties与xml知识点总结


    一、Properties

    定义:properties是一个双列集合集合,拥有Map集合所有的特点(一般不会当集合使用)。

    重点:有一些特有的方法,可以把集合中的数据,按照键值对的形式写到配置文件当中也可以把配置文件中的数据,读取到集合中来。

    核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容
    image-20240611215508482

    1.1 构造方法

    构造器说明
    public Properties()用于构建Properties集合对象(空容器)

    1.2 从Properties文件中获取

    常用方法说明
    public void load(InputStream is)通过字节输入流,读取属性文件里的键值对数据
    public void load(Reader reader)通过字符输入流,读取属性文件里的键值对数据
    public String getProperty(String key)根据键获取值(其实就是get方法的效果)
    public Set stringPropertyNames()获取全部键的集合(其实就是keySet方法的效果)
    public class PropertiesTest {
        public static void main(String[] args) throws IOException {
            Properties properties = new Properties();
    
            properties.load(new FileReader("..\\properties\\a.properties"));
    
            for (String s : properties.stringPropertyNames()) {
                System.out.println(s + " = " + properties.getProperty(s));
            }
        }
    }
    

    1.3 向Properties文件中存储

    方法声明说明
    public Object setProperty(String key, String value)保存键值对数据到Properties对象中。如果键已经存在,会用新值替换旧值,并返回旧值;如果键不存在,返回null
    public void store(OutputStream os, String comments)把键值对数据,通过字节输出流写出到属性文件里去
    public void store(Writer w, String comments)把键值对数据,通过字符输出流写出到属性文件里去。comments参数用于在文件头部添加注释。
    public class PropertiesTest02 {
        public static void main(String[] args) throws IOException {
            Properties properties = new Properties();
    
            properties.setProperty("abc","123");
            properties.setProperty("def","456");
    
            properties.store(new FileWriter("..\\properties\\a.properties"),"注释");
        }
    }
    

    二、xml

    2.1 XML

    XML(全称EXtensible Markup Language,可扩展标记语言)

    本质是一种数据格式,可以用来存储复杂的数据结构和数据关系。

    2.2 特点

    • XML中的<标签名>称为一个标签或一个元素,一般是成对出现的。
    • XML中的标签名可以自己定义(可扩展),但必须要正确的嵌套。
    • XML中只能有一个根标签。
    • XML中的标签可以有属性。

    如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,文件后缀一般为.xml

    2.3 规则

    1. 大小写敏感

    在XML文档中,大小写是有区别的。例如,“A”和“a”是不同的标记。编写XML元素时,前后标记的大小写必须保持一致。最好养成一致的习惯,比如:

    • 全部小写
    • 全部大写
    • 大写第一个字母

    这样可以减少因为大小写不匹配而产生的文档错误。

    2. 只有一个根元素

    良好格式的XML文档必须有一个根元素。

    根元素是紧接着声明后面的第一个元素,其他元素都是这个根元素的子元素。

    根元素完全包括文档中的所有其他元素。

    3. 属性值使用引号

    所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。

    4. 所有的标记必须有相应的结束标记

    所有标记必须成对出现。有一个开始标记,就必须有一个结束标记。

    5. 所有的空标记也必须被关闭

    在XML中,所有的空标记也必须关闭。可以使用自闭合标记,如:

    <emptyElement />
    

    示例XML文档

    
    <rootElement>
        <childElement attribute="value">ContentchildElement>
        <emptyElement />
    rootElement>
    

    2.3 抬头声明

    在XML(可扩展标记语言)中,抬头声明通常指的是XML声明。这个声明位于XML文档的最开始,用于指定该文档是XML文档,以及它使用的XML版本和字符编码。

    
    

    在这个例子中:

    • 是声明开始的标记。
    • version="1.0" 指定了XML的版本,目前最常用的是1.0版本。
    • encoding="UTF-8" 指定了文档使用的字符编码,这里使用的是UTF-8编码。UTF-8是一种通用的、兼容多种语言的字符编码。
    • ?> 是声明结束的标记。

    2.4 特殊字符

    • < 替代 < (小于号)
    • > 替代 > (大于号)
    • & 替代 & (和号)
    • ' 替代 ' (单引号)
    • " 替代 " (双引号)

    2.5 CDATA区段

    在XML文档中,所有文本都会被解析器解析。解析器会将XML中的标签和文本内容解析成文档对象模型(DOM)或其他数据结构。

    然而,有时需要在XML文档中包含一些特殊字符(如<&),这些字符在正常情况下会被解析器认为是标签或实体引用。为了在XML文档中插入这些特殊字符而不被解析器解析,我们可以使用CDATA区段。CDATA区段中的文本内容会被解析器忽略,直接按原样处理。

    CDATA区段允许您在XML文档中插入一段不会被解析器解析的文本。在CDATA区段中,您可以直接包含通常会被视为特殊字符的字符(如<&),而无需使用它们的实体引用。CDATA区段的格式如下:

    
    

    示例:

    
    <message>
        <header>
            <sender>user1sender>
            <receiver>user2receiver>
            <timestamp>2024-06-13T12:34:56timestamp>
        header>
        <body>
             & special characters!
            ]]>
        body>
    message>
    

    2.4 作用和应用场景

    • 配置文件:经常用作系统的配置文件。
    • 数据传输:作为一种特殊的数据结构,在网络中进行传输。

    示例:

    1. 配置文件
    
    <config>
        <database>
            <host>localhosthost>
            <port>3306port>
            <username>rootusername>
            <password>rootpasspassword>
        database>
    config>
    
    1. 数据传输示例
    
    <message>
        <header>
            <sender>user1sender>
            <receiver>user2receiver>
            <timestamp>2024-06-13T12:34:56timestamp>
        header>
        <body>
            <content>Hello, how are you?content>
        body>
    message>
    

    三、区别

    • 格式差异:TXT是纯文本格式,只包含文本信息;XML是标记语言格式,用于定义文档结构;Properties是键值对格式,用于存储配置信息。
    • 用途不同:TXT主要用于存储纯文本信息;XML用于数据交换、配置管理、Web服务等;Properties主要用于存储配置信息,如数据库连接、系统设置等。
    • 扩展性和可读性:XML具有出色的扩展性和可读性,可以自定义标记以适应不同需求;TXT和Properties在扩展性和可读性方面相对较弱,但因其简单性而易于理解和使用。
    • 平台兼容性:TXT、XML和Properties文件都具有较好的平台兼容性,可在多种操作系统和平台上使用。

    如有错误烦请指正

    感谢您的阅读

  • 相关阅读:
    计算机视觉与深度学习-全连接神经网络-训练过程-欠拟合、过拟合和Dropout- [北邮鲁鹏]
    基于加权灰色关联投影的Bagging-Blending多模型融合短期电力负荷预测
    zabbix item监控项的基本配置
    Maven入门与开箱即用
    string的应用和练习
    程序包org.apache.commons.XXX不存在
    以太坊智能合约方法初探
    循环链表2
    React面试八股文(第二期)
    SpringBoot常用注解
  • 原文地址:https://blog.csdn.net/Patrick_yuxuan/article/details/139719780