您现在的位置是:首页 > 名人名句

JavaEE 初阶篇-深入了解特殊文件(Properties 属性文件、XML)

作者:晨起时间:2024-05-02 13:50:38分类:名人名句

简介  文章浏览阅读1.3k次,点赞106次,收藏84次。Properties 属性文件是Java中一种常见的配置文件,用于存储键值对。它通常以“.properties”为后缀,采用“key=value”的格式来存储数据,其中“key”表示属性名,而“value”表示

点击全文阅读

🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 Properties 属性文件概述

        1.1 Properties 属性文件特性与作用

        1.2 使用 Properties 把键值对数据写出到属性文件中

        1.3 使用 Properties 读取属性文件里的键值对数据

        2.0 XML 概述

        2.1 XML 的特点

        2.2 XML 的作用和应用场景

        2.3 将 dom4j.jar 下载并导入项目

        2.4 解析 XML 文件


        1.0 Properties 属性文件概述

        Properties 属性文件是Java中一种常见的配置文件,用于存储键值对。它通常以“.properties”为后缀,采用“key=value”的格式来存储数据,其中“key”表示属性名,而“value”表示属性值。

        1.1 Properties 属性文件特性与作用

特性:

        1)以键值对的方式存储数据或者数据关系。

        2)键不能重复出现。

        3)属性文件一般会以“.properties”作为后缀。

作用:

        存储有键值对关系的数据,比如:用户与密码等。

        1.2 使用 Properties 把键值对数据写出到属性文件中

构造器:

        public Properties():用于构建 Properties 集合对象(空容器)

常用的方法:

        1)public Object setProperties(String key,String value):保存键值对数据到 Properties 对象中去。简单来说,先把数据存放在容器中。

        2)public void store(OutputStream os,String comments):把键值对数据,通过字节输出流写到属性文件里去。comments 这个参数是写备注信息。简单来说,将容器中的数据再通过字节输出流写到属性文件中。

        3)public void store(Writer w,String comments):把键值对数据,通过字符输出流写到属性文件里去。comments 这个参数是写备注信息。简单来说,将容器中的数据再通过字符输出流写到属性文件中。

代码演示:

import java.io.FileWriter;import java.io.IOException;import java.util.Properties;public class demo {    public static void main(String[] args) throws IOException {        //先创建好 Properties 容器        Properties properties = new Properties();        //再通过setProperty方法先将数据写到容器中        properties.setProperty("用户","密码");        properties.setProperty("小明","123");        properties.setProperty("小板","456");        properties.setProperty("小童","789");        //接着通过store方法将容器里的内容写到属性文件中        properties.store(new FileWriter("D:\\software\\code\\2023_java\\2023_java_code\\code_24_4_29\\src\\MyProperties\\text.properties"),"这是一个注释");            }}

运行结果:

        1.3 使用 Properties 读取属性文件里的键值对数据

构造器:

        public Properties():用于构建 Properties 集合对象(空容器)

常用的方法:

        1)public void load(InputStream is):通过字节输入流,读取属性文件里的键值对数据。简单来说,将文件中的内容通过字节流输入到 Properties 容器中。

        2)public void load(Reader reader):通过字符输入流,读取属性文件里的键值对数据。简单来说,将文件中的内容通过字符流输入到 Properties 容器中。

        3)public String getProperty(String key):根据键获取值(其实就是 get 方法的效果)。简单来说,从 Properties 容器中根据键来获取相对应的值。

        4)public Set<String> stringPropertyNames():获取全部键的集合(其实就是 keySet 方法的效果)。

代码演示:

import java.io.FileReader;;import java.util.Properties;import java.util.Set;public class demo2 {    public static void main(String[] args) throws Exception {        //先创建一个容器 Properties        Properties properties = new Properties();        //接着通过load方法将文件中的数据写到容器里        properties.load(new FileReader("D:\\software\\code\\2023_java\\2023_java_code\\code_24_4_29\\src\\MyProperties\\text.properties"));        //再把容器中的数据读取出来        //根据一个键来获取一个值的方式        String value = properties.getProperty("小明");        System.out.println(value);        String value1 = properties.getProperty("小板");        System.out.println(value1);        String value2 = properties.getProperty("小童");        System.out.println(value2);        System.out.println("======================");        //获取全部键        Set<String> set = properties.stringPropertyNames();        for (String s : set) {            System.out.println(s + " :" + properties.getProperty(s));        }    }}

运行结果:

        2.0 XML 概述

        XML 可扩展标记语言,是一种用于存储和传输数据的标记语言。XML 被设计用来传输和存储数据,同时具有自我描述性和可扩展性的特点。XML 的语法规则比较严格,它使用标签来标记数据,标签可以自定义,从而使 XML 具有很强的灵活性。

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

        2.1 XML 的特点

        1)XML 中的 <标签名> 称为一个标签或一个元素,一般是成对出现的。

        2)XML 中的标签名可以自己定义(可扩展),但必须要正确的嵌套。

        3)XML 中只能由一个根标签。

        4)XML 中的标签可以有多个属性。

        5)如果一个文件中放置的是 XML 格式的数据,这个文件就是 XML 文件,后缀一般要写成 .xml 。

        6)抬头声明必须有且必须放在第一行。

<?xml version="1.0" encoding="utf-8" ?><!-- 以上为抬头声明,抬头声明必须有,且必须放在第一行 -->

举个 XML 例子:

<?xml version="1.0" encoding="utf-8" ?><!-- 以上为用户信息 --><users>    <user id="1">        <name>张三</name>        <age>19</age>        <地址>学校</地址>        <data>99</data>    </user>    <user id="2">        <name>李四</name>        <age>20</age>        <地址>学校</地址>        <data>90</data>    </user>    <user id="3">        <name>王五</name>        <age>18</age>        <地址>学校</地址>        <data>89</data>    </user></users>

补充:

        1)XML 中可以定义注释信息:<!-- 注释内容 -->

        2)XML 中书写 "<"、"&" 等,可能会出现冲突,导致报错,此时可以用如下特殊字符替代。

        3)XML 中可以写一个叫 CDATA 的数据区:

<![CDATA[...内容...]]>

        里面的内容随便写。

        2.2 XML 的作用和应用场景

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

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

        2.3 将 dom4j.jar 下载并导入项目

        使用程序来读取 XML 文件中的内容。需要用到解析 XML 的框架,如:Dom4j(第三方研发的开源的框架)。

        1)接下来先下载 Dom4j 。通过该网址  Maven Repository: Search/Browse/Explore (mvnrepository.com) ,进去搜索 Dom4j 。

        完成这个流程就已经将 Dom4j.jar 下载到本地上了。

        2)接着需要将该 Dom4j.jar 导入到项目中

1.复制粘贴到工程目录下

2.接着将该 dom4j.jar 添加为库

        完成以上流程,就已经成功将 dom4j.jar 导入到项目中了。

        2.4 解析 XML 文件

(1)SAXReader:提供解析器,可以认为是代表整个 Dom4j 框架。

构造器:

        public SAXReader():构建 Dom4j 的解析器对象。

常用方法:

        1)public Document read(String url):把 XML 文件读成 Document 对象。

        2)public Document read(InputStream is):通过字节输入流读取 XML 文件。

        3)Element getRootElement():获得根元素对象。

(2)Document

常用的方法:

        1)public String getName():获得元素名字。

        2)public List<Element> elements():获得当前元素下所有子元素。

        3)public List<Element> elements(String name):获得当前元素下指定名字的子元素返回集合。

        4)public Element element(String name):获得当前元素下指定名字的子元素,如果有很多名字相同的返回第一个。

        5)public String attributeValue(String name):通过属性名直接得到属性值。

        6)public String elementText(子元素名):得到指定名称的子元素的文本。

        7)public String getText():得到文本。

代码演示:

import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.util.List;public class demo {    public static void main(String[] args) throws DocumentException {        //先创建解析器        SAXReader saxReader = new SAXReader();        //通过解析器的read方法,将XML进行解析为Document        Document document = saxReader.read("D:\\software\\code\\2023_java\\2023_java_code\\code_24_4_29\\src\\MyXML\\text2.xml");        //根据document对象先获取根元素对象        Element rootElement = document.getRootElement();        System.out.println("输出的是根元素的名字"+rootElement.getName());        //根据根元素再通过无参elements()方法获取全部子元素对象        List<Element> elementList = rootElement.elements();        //进行遍历输出        System.out.println("遍历输出子元素名字");        for (Element element : elementList) {            System.out.println(element.getName());        }        System.out.println("===============");        //根据根元素通过有参elements(String name)方法获取指定名字的子元素对象        System.out.println("遍历指定的子元素对象,输出该子元素的名字");        List<Element> elementList1 = rootElement.elements("user");        for (Element element : elementList1) {            System.out.println(element.getName());        }        System.out.println("===============");        //获取指定的元素,如果有同名,将会获取第一个user的Element对象        Element element = rootElement.element("user");        //再获取该对象的全部的属性,并将其输出属性名与属性值        List<Attribute> attributeList = element.attributes();        for (Attribute attribute : attributeList) {            System.out.println(attribute.getName() + " :" +attribute.getValue());        }        System.out.println("===============");        //通过element元素来获取子元素的文本        String name = element.elementText("name");        String  age = element.elementText("age");        String  address = element.elementText("地址");        System.out.println(name + " ," + age + " ," + address);        System.out.println("===============");        //通过element获取下的子元素        Element elementName = element.element("name");        //再来输出文本        String name1 = elementName.getText();        System.out.println(name1);    }}

运行结果:

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句