特殊文件——属性文件、XML文件

目录

[特殊文件 ------属性文件、XML文件](#特殊文件 ——属性文件、XML文件)

特殊文件的作用

需要掌握的知识点

Properties文件

[​编辑 构造器与方法​编辑](#编辑 构造器与方法编辑)

[使用Properties 把键值对数据写出到属性文件中](#使用Properties 把键值对数据写出到属性文件中)

[​编辑 XML文件​编辑](#编辑 XML文件编辑)

XML文件的作用和应用场景

解析XML文件

使用Dom4J框架解析出XML文件------下载、使用

Dom4j解析XML------得到Document对象

[使用Element提供的方法去获取 XML文件中的根元素,解析文件](#使用Element提供的方法去获取 XML文件中的根元素,解析文件)

XML解析代码示例

使用程序把数据写出XML文件中(仅做了解)​编辑​编辑

StringBuilder

主要特点:

主要方法:

[toString(): 返回此字符序列的字符串表示形式。](#toString(): 返回此字符序列的字符串表示形式。)

使用示例:

性能考虑:

补充知识:约束XML文件的书写(了解)

概念

约束文档​编辑

XML文档约束---DTD的使用(了解)

[​编辑XML文档约束---schema的使用(了解) ​编辑​编辑](#编辑XML文档约束—schema的使用(了解) 编辑编辑)


特殊文件 ------属性文件、XML文件

特殊文件的作用

需要掌握的知识点

Properties文件

构造器与方法

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

XML文件

XML文件的作用和应用场景

解析XML文件

使用Dom4J框架解析出XML文件------下载、使用

https://dom4j.github.io/ Dom4J的下载链接

Dom4j解析XML------得到Document对象

使用Element提供的方法去获取 XML文件中的根元素,解析文件

Element提供的方法

XML解析代码示例

java 复制代码
package com.zz.specialFile;

import com.zz.Enum.A;
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 XmlTest {
    public static void main(String args[]) throws DocumentException {
        //1.创建一个Dom4j框架提供的解析器对象
        SAXReader saxReader = new SAXReader();

        //2.使用saxReader对象把需要解析的XML文件读成一个Document对象
        Document document = saxReader.read("opp-app1\\src\\Users.xml");

        //3.从文件对象中解析XML文件的全部数据
        Element root = document.getRootElement();
        System.out.println(root.getName());

        //4.获取根元素下的全部一级子元素
        List<Element> elements = root.elements();
        //获得当前元素下指定子元素
        //List<Element> elements = root.elements("user");
        for(Element element : elements){
            System.out.println(element.getName());
        }
        //如果下面有很多子元素user,默认获取第一个
        Element user = root.element("user");
        System.out.println(user.elementText("name"));

        //5.获取元素的属性信息
        //方法一
        System.out.println(user.attributeValue("id"));
        //方法二
        Attribute id = user.attribute("id");
        System.out.println(id.getName());
        System.out.println(id.getValue());

        //获取所有元素的属性名和属性值
        List <Attribute> attributes = user.attributes();
        for(Attribute attribute : attributes){
            System.out.println(attribute.getName() + "=" + attribute.getValue());
        }

        //7.如何获取全部的文本内容:获取当前元素下的子元素文本值
        System.out.println(user.elementText("name"));
        System.out.println(user.elementText("地址"));
        System.out.println(user.elementText("password"));

        Element data = user.element("data");
        System.out.println(data.getText());
        System.out.println(data.getTextTrim());//取出文本去除前后空格
    }
}

使用程序把数据写出XML文件中(仅做了解)

StringBuilder

StringBuilder 是 Java 中的一个可变的字符序列,主要用于构建字符串,尤其是当需要频繁地修改字符串时。由于字符串在 Java 中是不可变的(immutable),每次对字符串进行修改(如拼接)都会创建一个新的字符串对象,这在性能上可能是低效的。而 StringBuilder 通过其可变特性提供了更高效的字符串构建方式。

主要特点:
  1. 可变 :可以在 StringBuilder 对象上执行多次修改操作,而无需创建新的对象。
  2. 线程不安全StringBuilder 不是线程安全的,因此在多线程环境中使用时需要小心。如果需要线程安全的版本,可以使用 StringBuffer
  3. 性能 :在处理大量字符串拼接操作时,StringBuilder 通常比直接使用字符串拼接(使用 + 运算符)更高效。
主要方法:
  • StringBuilder(): 创建一个空的 StringBuilder 对象。
  • append(String str): 将指定的字符串追加到此字符序列。
  • insert(int offset, String str): 在此字符序列的指定位置插入指定的字符串。
  • delete(int start, int end): 移除此序列的子字符串中的字符。
  • replace(int start, int end, String str): 使用给定字符串替换此序列的子字符串。
toString(): 返回此字符序列的字符串表示形式。
使用示例:
java 复制代码
	StringBuilder sb = new StringBuilder(); 

	sb.append("Hello"); 

	sb.append(" "); 

	sb.append("World"); 

	String result = sb.toString(); // result 现在是 "Hello World"
性能考虑:

当你知道将要构建的字符串的大致长度时,可以使用 StringBuilder 的带初始容量的构造函数来避免内部数组的多次重新分配和复制,这可以进一步提高性能。

java 复制代码
StringBuilder sb = new StringBuilder(100); // 初始容量为 100

总之,StringBuilder 是 Java 中构建字符串的高效工具,尤其是在需要频繁修改字符串时。

补充知识:约束XML文件的书写(了解)

概念
约束文档
XML文档约束---DTD的使用(了解)

XML文档约束---schema的使用(了解)

相关推荐
湫ccc30 分钟前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐30 分钟前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi771 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
mqiqe1 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin1 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
少说多做3431 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀1 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
哭泣的眼泪4081 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame