特殊文件——属性文件、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的使用(了解) 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

windows使用nvm对node进行版本管理切换

在使用之前各位务必卸载掉自己安装过的nvm或者node版本包括环境变量之类的&#xff0c;要保证自己的电脑完全没有node环境&#xff0c;下面这些配置会自动配置node环境和安装node 参考视频 https://github.com/coreybutler/nvm-windows 访问以上链接到github去下载 点击release…

matlab simulink 一阶倒立摆LQR控制

1、内容简介 略 80-可以交流、咨询、答疑 一阶倒立摆LQR控制 2、内容说明 略 一级倒立摆系统的数学模型 系统的组成系统由小 车、小球和轻质杆组成。 倒摆通过转动关节安装在 驱动小车上&#xff0c;杆子的一端 固定在小车上&#xff0c;另一端可 以自由的左右倒下。通过 …

Ribbon简单使用

Ribbon是Netflix发布的云中间层服务开源项目&#xff0c;其主要功能是提供客户端实现负载均衡算法。Ribbon客户端组件提供一系列完善的配置项如连接超时&#xff0c;重试等。简单的说&#xff0c;Ribbon是一个客户端负载均衡器&#xff0c;我们可以在配置文件中Load Balancer后…

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

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

【原创】java+swing+mysql报修管理系统设计与实现

前言&#xff1a; 为了满足居民和学生生活的需求&#xff0c;方便社区居民或者学生等用户进行报修&#xff0c;我们根据实际情况。首先&#xff0c;通过市场需求&#xff0c;我们确定了报修管理系统的基本功能。我们今天要用javaswing去开发一个C/S架构的报修管理系统&#xf…

数据结构-队列java实现

队列 队列(queue)1.队列的特点2.数组模拟队列JAVA代码3.上述过程优化 博文主要是自己学习的笔记&#xff0c;供自己以后复习使用&#xff0c; 参考的主要教程是B站的 尚硅谷数据结构和算法 队列(queue) 1.队列的特点 1&#xff09;队列是一个有序列表&#xff0c;可以用数组…

集成学习 | 集成学习思想:Bagging思想

目录 一. Bagging思想1. Bagging 算法2. 随机森林(Random Forest)算法 在正文开始之前&#xff0c;我们先来聊一聊什么是集成学习&#xff1f; 集成学习是一种算法思想&#xff1a;将若干个弱学习器分组之后&#xff0c;产生一个新的学习器 弱学习器指预测误差在50%以下的学习器…

计算机组成原理 第五章(计算机的运算方法)—第五节(浮点四则运算)

写在前面&#xff1a; 本系列笔记主要以《计算机组成原理&#xff08;唐朔飞&#xff09;》为参考&#xff0c;大部分内容出于此书&#xff0c;笔者的工作主要是挑其重点展示&#xff0c;另外配合下方视频链接的教程展开思路&#xff0c;在笔记中一些比较难懂的地方加以自己的…

c++实现简单搜索二叉树<K,V>形

文章目录 搜索二叉树节点类BSTreeNode(节点类的构造) BSTree(功能实现类)Insert(插入)Erase(删除)Find(查找这个节点) 搜索二叉树 搜索二叉树本质:左节点比我小 右节点比我大 节点类 BSTreeNode:给自身节点封装一个类 用这个类来添加节点的操作 我们写的是一个key.value型的搜…

稀碎从零算法笔记Day19-LeetCode:相交链表

题型&#xff1a;链表基本操作 链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…

vue3项目

案例用到的知识点如下&#xff1a; ① vite 创建项目 ② 组件的封装与注册 ③ props ④ 样式绑定 ⑤ 计算属性 ⑥ 自定义事件 ⑦ 组件上的 v-model 效果如下图&#xff1b; 页面2 项目结构&#xff1a; 初始化项目 在终端运行以下的命令&#xff0c;初始化 vite 项目&#xf…

前端跨平台开发框架:简化多端开发的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

十四、Nacos源码系列:Nacos配置发布原理

目录 一、简介 二、加密处理 三、发布配置 3.1、插入或更新配置信息 3.2、发布配置数据变动事件 3.2.1、目标节点是当前节点 3.2.2、目标节点非当前节点 四、总结 一、简介 一般情况下&#xff0c;我们是通过Nacos提供的Web控制台登录&#xff0c;然后通过界面新增配置…

苹果Vision Pro官方应用商店(网页版)正式上线

该网站为用户提供了丰富多样的应用资源,包括娱乐、教育、健康、购物、工具等各种类型的应用和游戏。 1、Apps & Games Arcade:提供各种应用和游戏,包括最新推出的、热门的以及专门为Apple Vision Pro设计的应用和游戏。 2、What’s New:展示最新推出的应用和游戏,让…

第388场 LeetCode 周赛题解

A 重新分装苹果 排序 class Solution { public:int minimumBoxes(vector<int> &apple, vector<int> &capacity) {int s accumulate(apple.begin(), apple.end(), 0);sort(capacity.begin(), capacity.end(), greater<int>());int res 0;for (int c…

STM32系列——F103C8T6 控制SG90舵机(HAL库)

文章目录 一、舵机控制原理二、.CubeMX配置配置RCC、SYS、时钟树配置RCC配置SYS配置时钟树配置定时器产生PWM波形 Keil5代码接线图及效果如果您发现文章有错误请与我留言&#xff0c;感谢 一、舵机控制原理 舵机的控制一般需要一个20ms左右的时基脉冲&#xff0c;该脉冲的高电平…

【MatLab】之:Simulink安装

一、内容简介 本文介绍如何在 MatLab 中安装 Simulink 仿真工具包。 二、所需原材料 MatLab R2020b&#xff08;教学使用&#xff09; 三、安装步骤 1. 点击菜单中的“附加功能”&#xff0c;进入附加功能管理器&#xff1a; 2. 在左侧的“按类别筛选”下选择Using Simulin…

基于Springboot+Redis+mysql实现的闲置二手交易网站管理系统

1.1 背景分析 二手商品是学生比较青睐的廉价商品&#xff0c;网站设计应着重突出实用和廉价。也有一部分消费者是淘宝者&#xff0c;他们对相中的商品有着急切的拥有欲望。网上交易的好学生提供一个供需平台&#xff0c;学生可以将自己不用的东西放在网上&#xff0c;也可在网…

通过更新路书当前坐标下marker的icon来展示沿途的风景

通过更新路书当前坐标下marker的icon来展示沿途的风景 1.效果图2.[工程链接](https://download.csdn.net/download/m0_61864577/88978866)3.需修改地方: 本文演示了如何通过百度地图的路书功能,展示途经的风景。定时缩放,既有全局路径,又有当前位置和运动轨迹;可以显示当前坐标…

力扣59. 螺旋矩阵 II

思路&#xff1a;此题思路就是绕圈遍历&#xff0c;全靠条件处理技巧&#xff0c;重点要清楚的就是循环不变量&#xff1a;左闭右开&#xff08;即拐弯处的一个数&#xff0c;留给第二行处理&#xff09; 以下是代码随想录的作者的一张图片&#xff0c;每次for循环&#xff0c;…