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

目录

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

特殊文件的作用 

需要掌握的知识点

Properties文件 

​编辑 构造器与方法​编辑

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

​编辑 XML文件​编辑

 XML文件的作用和应用场景

解析XML文件 

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

Dom4j解析XML——得到Document对象 

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

XML解析代码示例

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

StringBuilder 

主要特点:

主要方法:

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

使用示例:

性能考虑:

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

概念

 约束文档​编辑

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

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


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

特殊文件的作用 

需要掌握的知识点

Properties文件 

 构造器与方法

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

 XML文件

 XML文件的作用和应用场景

解析XML文件 

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

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

Dom4j解析XML——得到Document对象 

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

Element提供的方法 

XML解析代码示例

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(): 返回此字符序列的字符串表示形式。
使用示例:

	StringBuilder sb = new StringBuilder(); 

	sb.append("Hello"); 

	sb.append(" "); 

	sb.append("World"); 

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

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


StringBuilder sb = new StringBuilder(100); // 初始容量为 100

 

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

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

概念

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL+PYTHON学习3

1&#xff09; 遍历一个SHEET&#xff0c;无非就是两个循环&#xff0c;rows属性是取得所有行。 fn data3_16.xlsx wb openpyxl.load_workbook(fn) ws wb.active for row in ws.rows:for cell in row:print(cell.value, end )print() 2&#xff09; 返回工作表的最小行数…

TCP/IP协议栈

TCP/IP协议栈&#xff08;Transmission Control Protocol/Internet Protocol Suite&#xff09;是互联网上进行数据通信的一系列网络协议的集合&#xff0c;它是现代计算机网络通信的基础架构。 它由多个不同的协议层构成&#xff0c;每层负责不同层面的数据处理和传输工作&…

PyQt5使用

安装Pyqt5信号与槽使用可视化界面编辑UI (Pyside2)ui生成之后的使用(两种方法)1 ui转化为py文件 进行import2 动态调用UI文件 安装Pyqt5 pip install pyqt5-tools这时候我们使用纯代码实现一个简单的界面 from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButto…

LabVIEW湍流等离子体束热效率优化

LabVIEW湍流等离子体束热效率优化 利用LabVIEW虚拟仪器技术&#xff0c;对湍流等离子体束的热效率进行了实时监测与优化&#xff0c;提高其在材料处理领域的应用效率和精度。通过双进气湍流等离子体发生器&#xff0c;实现了在不同工作参数下对热效率的实时在线监测&#xff0…

openssl3.2 - note - Writing OpenSSL Provider Skeleton

文章目录 openssl3.2 - note - Writing OpenSSL Provider Skeleton概述笔记测试工程的建立复现的provider工程总结Provider包含的头文件openssl/core.h中的数据结构实现 OSSL_provider_init()看一下openssl自带的提供者provider的openssl命令行测试provider的本质是hook了opens…

RabbitMQ高级-高级特性

1.消息可靠性传递 在使用RabbitMQ的时候&#xff0c;作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式来控制消息的投递可靠性模式 1.confirm 确认模式 确认模式是由exchange决定的 2.return 退回模式 回退模式是由routing…

数据结构-红黑树

1.容器 容器用于容纳元素集合&#xff0c;并对元素集合进行管理和维护&#xff0e; 传统意义上的管理和维护就是&#xff1a;增&#xff0c;删&#xff0c;改&#xff0c;查&#xff0e; 我们分析每种类型容器时&#xff0c;主要分析其增&#xff0c;删&#xff0c;改&#xff…

NFTScan 正式上线 Blast NFTScan 浏览器和 NFT API 数据服务

2024 年 3 月 15 号&#xff0c;NFTScan 团队正式对外发布了 Blast NFTScan 浏览器&#xff0c;将为 Blast 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商&#xff0c;Blast 是继 Bitcoin、Ethereum、BNBChain、…

wifi7有哪些新特性?看这份文档

更多内容在 这是H3C发布的关于wifi7的介绍文档。 回顾802.11协议发展历程&#xff0c;初版802.11协议速率仅为2Mbps。802.11b使用新的编码形式&#xff0c;将速 率提升到11Mbps。802.11a利用新的5GHz频段&#xff0c;引入OFDM技术并采用64-QAM调制将无线速 率提升到54Mbps。80…

sqllab第二十六关通关笔记

知识点&#xff1a; 空格替换 %09 %0a %0b %0c %0d %a0 (%2b)or替换&#xff1a;|| ||是不需要空格区分的and替换&#xff1a;&& &&同样不需要空格区分的双写绕过&#xff0c;但是绕过后需要和内容进行空格区分的&#xff0c;要不然不发挥作用&#xff1b;这关…

免费阅读篇 | 芒果YOLOv8改进113:注意力机制ShuffleAttention:深度卷积神经网络的随机注意力

&#x1f4a1;&#x1f680;&#x1f680;&#x1f680;本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 该篇博客为免费阅读内容&#xff0c;YOLOv8ShuffleAttention改进内容&#x1f680;&…

矩阵中移动的最大次数

文章目录 所属专栏:BFS算法 题目链接 思路如下&#xff1a; 1.首先我们需要从第一列开始遍历&#xff0c;寻找每一个都能够满足条件的位置&#xff0c;将它插入到数组里面 2.第一列遍历完了后我们先判断第一列的数是否都满足条件插入到数组里面&#xff0c;如果数组为空&#…

JAVA13多行文本java14模式变量

文章目录 多行文本模式变量 多行文本 在JAVA13中&#xff0c;终于是支持多行文本字面量了。而且最关键的是为了源代码更加美观&#xff0c;还自动去掉了每行文本前面的空格。如下面的例子&#xff1a; public class MultilineStringDemo {public static void main(String[] ar…

在Linux/Ubuntu/Debian中使用windows应用程序/软件

Wine 是一个兼容层&#xff0c;允许你在类 Unix 操作系统&#xff08;包括 Ubuntu&#xff09;上运行 Windows 应用程序。 以下是在 Ubuntu 上安装和使用 Wine 的基本步骤&#xff1a; 在 Ubuntu 上安装 Wine&#xff1a; 更新软件包列表&#xff1a; 打开终端并运行以下命令以…

【Miniconda】一文了解conda虚拟环境的作用

【Miniconda】一文了解conda虚拟环境的作用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订阅和支持~ &am…

macOS 安装 NetLogo 6.4.0

netlogo 下载地址 NetLogo-6.4.0.dmg参考 netlogo 官网

源码编译部署LAMP

编译部署LAMP 配置apache [rootzyq ~]#: wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz --2023-12-11 14:35:57-- https://downloads.apache.org/apr/apr-1.7.4.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104…

快递批量查询神器:一键解锁物流数据,高效管理轻松实现!

在这个信息爆炸的时代&#xff0c;拥有「多维度快递查询分析工具」&#xff0c;就意味着拥有了洞悉市场脉动的能力。让您的商业决策更加明智&#xff0c;让您的企业在竞争中脱颖而出。现在就加入我们的行列吧&#xff01;一键掌握物流数据&#xff0c;洞悉市场脉动&#xff0c;…

npm下载慢换国内镜像地址

1 设置淘宝镜像地址 npm config set registry http://registry.npm.taobao.org 2 查看当前下载地址 npm config get registry 3 其它镜像地址列表&#xff1a; 1. 官方镜像&#xff1a;https://registry.npmjs.org/ 2. 淘宝镜像&#xff1a;https://registry.npm.taobao.o…

【渗透测试】

渗透测试 一、kali信息搜集1、端口扫描常见的端口服务工具&#xff1a; 2、目录扫描工具&#xff1a; 3、CMS系统指纹识别工具&#xff1a; 4、资产收集工具 二、kali漏洞利用1、漏洞数据库2、漏洞扫描工具商业漏洞扫描工具免费漏洞扫描工具国产商业漏洞扫描产品 3、msf反弹连接…