特殊文件介绍XML Properties文件

简介: Properties文件 一.properties介绍 二.properties使用 三.解决中文乱码问题 XML文件 一.XML介绍 二.XML文件的语法规则 三.XML的使用

 

Properties文件

image.gif编辑

一.properties介绍

1.什么是properties文件

Properties文件是一种常用的配置文件格式,用于存储键值对(key-value pairs)的数据。它通常以文本文件的形式存在,其中每一行都包含一个键值对,通过等号(=)或冒号(:)进行分隔。属性文件主要用于在软件开发中保存和读取配置信息,例如应用程序的参数、数据库连接信息、国际化资源等。

2.properties文件的特点

    1. 键值对:每个属性都由唯一的键和对应的值组成。
    2. 无序:属性文件中的键值对是无序的,没有固定顺序。
    3. 简单易读:属性文件使用简单的文本格式,易于编辑和阅读。
    4. 支持注释:可以通过在行首添加注释符号(#或!)来添加注释,注释内容将被忽略。
    5. 支持层级结构:键值对中的键可以使用点号(.)进行分割,创建层级结构。

    注意:

    1.输入格式只能是键值对即键=值 如name = 张三

    2.键的名字不能重复,比如不能重复两个name

    3.文件的后缀名一般是.propertis结尾

    3.properties的核心作用

    properties由键值对可以看出这本质是java中集合框架的Map,但是一般不会当集合来使用

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


    二.properties使用

    创建properties文件

    image.gif编辑

    然后设置内容为 键名=键值,如下

    age=15
    email=123456@qq.com
    name=张三
    slary=15000

    image.gif

    4.程序获取Properties内容

    通过构造器Public Properties()构建Properties对象

    写入常用方法

    方法 描述
    load(InputStream is) 从输入流中加载Properties文件。
    load(Reader reader) 从Reader对象中加载Properties文件。
    getProperty(String key) 根据指定的键获取相应的属性值。
    setProperty(String key, String value) 设置指定键的属性值。
    stringPropertyNames() 返回一个包含所有属性名的Set集合,每个属性名都是字符串类型。

    案例代码:

    package PropertiesTest;
    import java.io.FileReader;
    import java.util.Properties;
    public class javaDemo {
        public static void main(String[] args) {
    //        创建Resource对象
            Properties properties = new Properties();
    //        加载Properties内容
            try {
                properties.load(new FileReader("E:\\javatest\\src\\test.properties"));
    //            获取键对应的值
                String name = properties.getProperty("name");
                System.out.println(name);
    //            设置对应的键值
                properties.setProperty("name","黄小龙");
                String name2  = properties.getProperty("name");
                System.out.println(name2);
    //            输出所有内容
                System.out.println(properties);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    image.gif

    image.gif编辑

    写出常用方法:

    方法 描述
    setProperty(String key, String value) 设置指定键的属性值。
    store(OutputStream os, String comment) 将Properties对象中的键值对存储到输出流,并可添加注释。
    store(Writer w, String comment) 将Properties对象中的键值对存储到Writer对象,并可添加注释。

    案例代码:

    package PropertiesTest2;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.util.Properties;
    public class javaDemo {
        public static void main(String[] args)throws Exception {
    //        创建properties对象
            Properties properties = new Properties();
    //        加载原本拥有的键值对(防止覆盖原来内容)
            properties.load(new FileReader("E:\\javatest\\src\\test.properties"));
    //        设置需要存储的键值对
            properties.setProperty("slary","15000");
            properties.setProperty("婚姻情况","未婚");
            properties.setProperty("财产状况","破产");
    //        将设置的键值对存储到属性文件中去
            properties.store(new FileWriter("E:\\javatest\\src\\test.properties"),"补充其个人信息");
        }
    }

    image.gif

    image.gif编辑

    三.解决中文乱码问题

    5.解决中文乱码问题

    第一次运行时候获取键对应的value时候中文的返回值为???

    问题原因就在于编码格式不同导致不同编码使用时候无法识别

    找到设置

    image.gif编辑

    找到编辑器->的文件编码,按照如下即可

    image.gif编辑


    XML文件

    image.gif编辑

    一.XML介绍

    1.什么是XML文件

    XML(可扩展标记语言)是一种用于存储和传输数据的文本格式。它被设计用于结构化数据的描述和交换,广泛应用于互联网和其他领域。XML文件使用自定义的标签来表示数据的不同部分,并使用起始标签和结束标签包围数据。

    2.XML的特点

      1. 可读性:XML文件使用纯文本格式,易于阅读和理解。它使用标签和元素对数据进行结构化描述。
      2. 可扩展性:XML文件是可扩展的,可以根据需要定义自己的标签和结构。这使得XML非常灵活,适用于各种数据表示需求。
      3. 自描述性:XML文件包含了标签和属性,这些标签和属性可以提供关于数据内容、结构和类型的附加信息。这使得XML文件能够自描述其所包含的数据。
      4. 平台无关性:XML文件不依赖于任何特定的操作系统或编程语言。它是一种通用的数据格式,可以在不同平台和环境中使用和解析。

      3.XML的作用

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

      比如说在Maven中配置jar包,在JavaWeb配置Web.xml,在Mybatis中配置数据库连接等等。


      二.XML文件的语法规则

      1.设置抬头声明

      <?xml version="1.0" encoding="UTF-8" ?>
      <!--抬头声明必须放在第一行-->
      <!--根标签只有一个-->

      image.gif

      version:XML的默认版本号

      encoding:本XML的编码方式

      2.XML注释

      中通过<!--注释内容-->

      3.特殊字符转换

      在XML中书写 '>','<','&',等特殊字符可能会出现冲突报错,所以需要将其转换成对应的特殊字符,如下。

      原始字符 转义字符 字符含义
      < &lt; 小于
      > &gt; 大于
      & &amp; 和号
      ' &apos; 单引号
      " &quot; 双引号

      4.<![CDATA{   }]>随意书写区域

      <user id="1">
              <name>黄飞宏</name>
              <age>19</age>
              <salary>3000</salary>
              <![CDATA[ 随意书写区域  ]]]>
          </user>

      image.gif

      三.XML的使用

      首先需要创建xml文件,并设置内容image.gif编辑

      image.gif编辑

      <?xml version="1.0" encoding="UTF-8" ?>
      <Users>
          <user>
              <name>黄飞宏</name>
              <age>50</age>
              <adress>广东</adress>
          </user>
          <user>
              <name>张三</name>
              <age>21</age>
              <adress>广西</adress>
          </user>
      </Users>

      image.gif

      1.下载解析器

      由于正常下用io流访问xml文件十分麻烦,所以可以使用开源的框架,比如Dom4j框架

      如果有Maven的话,可以直接导入jar包,会自动在中央仓库中下载对应的jar包,十分方便

      Maven构建工具下载与配置(图文详细)_Alphamilk的博客-CSDN博客

      <dependencies>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
        </dependencies>

      image.gif

      如果没有Maven构建工具的同学则需要到对应的官网去下载对应的jar包,并在src下创建lib目录后手动将jar包复制进去

      2.使用解析器

      首先需要创建解析器,并解析文件

      //        创建一个Dom4框架的解析器
              SAXReader saxReader = new SAXReader();
      //        使用saxReader对象将对象解析成为一个可读的Document对象
              Document document = saxReader.read("E:\\MyBaits-project01\\src\\main\\resources\\Test.xml");

      image.gif

      解析后的Document对象被Element对象接收

      //        从文档对象解析XML文件的全部数据
      //        获取根标签
              Element root = document.getRootElement();
      //        获取根标签名字
              System.out.println(root.getName());

      image.gif

      3.Element提供的方法

      方法名 描述
      getName() 获取当前元素的名称
      elements() 获取当前元素的所有子元素
      elements(String name) 获取当前元素指定名称的子元素列表
      attributeValue(String name) 获取当前元素指定属性的值
      elementText(String childElementName) 获取当前元素指定子元素的文本内容

      案例代码:

      package com.alphamilk.mybatis;
      import org.dom4j.Document;
      import org.dom4j.Element;
      import org.dom4j.io.SAXReader;
      import java.util.Iterator;
      import java.util.List;
      public class App {
          public static void main(String[] args) throws Exception{
      //        创建一个Dom4框架的
              SAXReader saxReader = new SAXReader();
      //        使用saxReader对象将对象解析成为一个可读的Document对象
              Document document = saxReader.read("E:\\MyBaits-project01\\src\\main\\resources\\Test.xml");
      //        从文档对象解析XML文件的全部数据
      //        获取根标签
              Element root = document.getRootElement();
      //        获取根标签名字
              System.out.println(root.getName());
      //        获取根标签下的所有子标签
              List<Element> list = root.elements();
              Iterator<Element> iterator = list.iterator();
      //        输出所有子标签
              while (iterator.hasNext()){
                  System.out.println(iterator.next().getName());
              }
      //        获取user标签下的user标签name的内容,如果有多个则取第一个user
              Element user = root.element("user");
              System.out.println(user.elementText("name"));
          }
      }

      image.gif

      image.gif编辑


       

      目录
      相关文章
      |
      6天前
      |
      XML 数据格式
      小米备份descript.xml文件
      小米备份descript.xml文件
      12 0
      |
      17天前
      |
      XML Java 数据库连接
      mybatis中在xml文件中通用查询结果列如何使用
      mybatis中在xml文件中通用查询结果列如何使用
      20 0
      |
      19天前
      |
      XML JavaScript 前端开发
      xml文件使用及解析
      xml文件使用及解析
      |
      1月前
      |
      XML C# 数据格式
      使用C#操作XML文件
      使用C#操作XML文件
      11 0
      |
      1月前
      |
      Java
      java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
      java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
      10 0
      |
      1月前
      |
      Kubernetes Cloud Native Java
      Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
      Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
      40 2
      |
      1月前
      |
      XML Java 数据库连接
      struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
      struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
      11 0
      |
      9天前
      |
      XML C# 数据格式
      C# 解析XML文件
      C# 解析XML文件
      17 1
      |
      1月前
      Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
      Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
      15 1
      |
      1月前
      |
      XML Java 数据格式
      使用java解析XML文件的步骤
      使用java解析XML文件的步骤
      10 0