Properties与xml知识点总结

文章目录

  • 一、Properties
    • 1.1 构造方法
    • 1.2 从Properties文件中获取
    • 1.3 向Properties文件中存储
  • 二、xml
    • 2.1 XML
    • 2.2 特点
    • 2.3 规则
    • 2.3 抬头声明
    • 2.4 特殊字符
    • 2.5 CDATA区段
    • 2.4 作用和应用场景
  • 三、区别

一、Properties

定义:properties是一个双列集合集合,拥有Map集合所有的特点(一般不会当集合使用)。

重点:有一些特有的方法,可以把集合中的数据,按照键值对的形式写到配置文件当中也可以把配置文件中的数据,读取到集合中来。

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

1.1 构造方法

构造器说明
public Properties()用于构建Properties集合对象(空容器)

1.2 从Properties文件中获取

常用方法说明
public void load(InputStream is)通过字节输入流,读取属性文件里的键值对数据
public void load(Reader reader)通过字符输入流,读取属性文件里的键值对数据
public String getProperty(String key)根据键获取值(其实就是get方法的效果)
public Set<String> stringPropertyNames()获取全部键的集合(其实就是keySet方法的效果)
public class PropertiesTest {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();

        properties.load(new FileReader("..\\properties\\a.properties"));

        for (String s : properties.stringPropertyNames()) {
            System.out.println(s + " = " + properties.getProperty(s));
        }
    }
}

1.3 向Properties文件中存储

方法声明说明
public Object setProperty(String key, String value)保存键值对数据到Properties对象中。如果键已经存在,会用新值替换旧值,并返回旧值;如果键不存在,返回null
public void store(OutputStream os, String comments)把键值对数据,通过字节输出流写出到属性文件里去
public void store(Writer w, String comments)把键值对数据,通过字符输出流写出到属性文件里去。comments参数用于在文件头部添加注释。
public class PropertiesTest02 {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();

        properties.setProperty("abc","123");
        properties.setProperty("def","456");

        properties.store(new FileWriter("..\\properties\\a.properties"),"注释");
    }
}

二、xml

2.1 XML

XML(全称EXtensible Markup Language,可扩展标记语言)

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

2.2 特点

  • XML中的<标签名>称为一个标签或一个元素,一般是成对出现的。
  • XML中的标签名可以自己定义(可扩展),但必须要正确的嵌套。
  • XML中只能有一个根标签。
  • XML中的标签可以有属性。

如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,文件后缀一般为.xml

2.3 规则

1. 大小写敏感

在XML文档中,大小写是有区别的。例如,“A”和“a”是不同的标记。编写XML元素时,前后标记的大小写必须保持一致。最好养成一致的习惯,比如:

  • 全部小写
  • 全部大写
  • 大写第一个字母

这样可以减少因为大小写不匹配而产生的文档错误。

2. 只有一个根元素

良好格式的XML文档必须有一个根元素。

根元素是紧接着声明后面的第一个元素,其他元素都是这个根元素的子元素。

根元素完全包括文档中的所有其他元素。

3. 属性值使用引号

所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。

4. 所有的标记必须有相应的结束标记

所有标记必须成对出现。有一个开始标记,就必须有一个结束标记。

5. 所有的空标记也必须被关闭

在XML中,所有的空标记也必须关闭。可以使用自闭合标记,如:

<emptyElement />

示例XML文档

<?xml version="1.0" encoding="UTF-8"?>
<rootElement>
    <childElement attribute="value">Content</childElement>
    <emptyElement />
</rootElement>

2.3 抬头声明

在XML(可扩展标记语言)中,抬头声明通常指的是XML声明。这个声明位于XML文档的最开始,用于指定该文档是XML文档,以及它使用的XML版本和字符编码。

<?xml version="1.0" encoding="UTF-8"?>

在这个例子中:

  • <?xml 是声明开始的标记。
  • version="1.0" 指定了XML的版本,目前最常用的是1.0版本。
  • encoding="UTF-8" 指定了文档使用的字符编码,这里使用的是UTF-8编码。UTF-8是一种通用的、兼容多种语言的字符编码。
  • ?> 是声明结束的标记。

2.4 特殊字符

  • &lt; 替代 < (小于号)
  • &gt; 替代 > (大于号)
  • &amp; 替代 & (和号)
  • &apos; 替代 ' (单引号)
  • &quot; 替代 " (双引号)

2.5 CDATA区段

在XML文档中,所有文本都会被解析器解析。解析器会将XML中的标签和文本内容解析成文档对象模型(DOM)或其他数据结构。

然而,有时需要在XML文档中包含一些特殊字符(如<&),这些字符在正常情况下会被解析器认为是标签或实体引用。为了在XML文档中插入这些特殊字符而不被解析器解析,我们可以使用CDATA区段。CDATA区段中的文本内容会被解析器忽略,直接按原样处理。

CDATA区段允许您在XML文档中插入一段不会被解析器解析的文本。在CDATA区段中,您可以直接包含通常会被视为特殊字符的字符(如<&),而无需使用它们的实体引用。CDATA区段的格式如下:

<![CDATA[
    ... 在这里可以包含任何字符,包括 < 和 & ...
]]>

示例:

<?xml version="1.0" encoding="UTF-8"?>
<message>
    <header>
        <sender>user1</sender>
        <receiver>user2</receiver>
        <timestamp>2024-06-13T12:34:56</timestamp>
    </header>
    <body>
        <![CDATA[
            Hello, how are you? Here is some special content: <tag> & special characters!
        ]]>
    </body>
</message>

2.4 作用和应用场景

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

示例:

  1. 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <database>
        <host>localhost</host>
        <port>3306</port>
        <username>root</username>
        <password>rootpass</password>
    </database>
</config>
  1. 数据传输示例
<?xml version="1.0" encoding="UTF-8"?>
<message>
    <header>
        <sender>user1</sender>
        <receiver>user2</receiver>
        <timestamp>2024-06-13T12:34:56</timestamp>
    </header>
    <body>
        <content>Hello, how are you?</content>
    </body>
</message>

三、区别

  • 格式差异:TXT是纯文本格式,只包含文本信息;XML是标记语言格式,用于定义文档结构;Properties是键值对格式,用于存储配置信息。
  • 用途不同:TXT主要用于存储纯文本信息;XML用于数据交换、配置管理、Web服务等;Properties主要用于存储配置信息,如数据库连接、系统设置等。
  • 扩展性和可读性:XML具有出色的扩展性和可读性,可以自定义标记以适应不同需求;TXT和Properties在扩展性和可读性方面相对较弱,但因其简单性而易于理解和使用。
  • 平台兼容性:TXT、XML和Properties文件都具有较好的平台兼容性,可在多种操作系统和平台上使用。

如有错误烦请指正

感谢您的阅读

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

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

相关文章

神火股份电子商务平台(数字化招采平台),构建企业数字活力

为推进数字化转型升级进程&#xff0c;神火股份携手信源信息建设电子商务平台&#xff0c;近日&#xff0c;该平台已实现验收&#xff0c;为企业高质量发展注入“数字活力”。 河南神火煤电股份有限公司&#xff08;简称“神火股份”&#xff09;是以煤炭、发电、电解铝生产及…

Webmin在EPICS IOC启动中的应用

本文使用webmin启动远程工控机中的EPICS IOC&#xff0c;受控设备使用PI公司的六轴台以及相应的控制器C-887&#xff1a; 1&#xff09;控制器C-887 2) 六轴台&#xff1a; 3&#xff09;在工控机上安装用于与C-887控制器进行通信的EPICS IOC程序&#xff0c;安装结束后&#…

百度文心智能体平台(想象即现实):轻松上手,开启智能新时代!创建属于自己的智能体应用。

目录 1.1、文心智能体平台 1.2、创建智能体 1.3、智能体报名入口 1.4、古诗词小助手 1.5、访问我的智能体 在这个全新的时代里&#xff0c;人工智能技术正以前所未有的速度发展&#xff0c;渗透到我们生活的方方面面。无论是智能家居、自动驾驶&#xff0c;还是医疗诊断、…

Python抓取天气信息

Python的详细学习还是需要些时间的。如果有其他语言经验的&#xff0c;可以暂时跟着我来写一个简单的例子。 2024年最新python教程全套&#xff0c;学完即可进大厂&#xff01;&#xff08;附全套视频 下载&#xff09; (qq.com) 我们计划抓取的数据&#xff1a;杭州的天气信息…

什么品牌洗地机最好?精心挑选四大精品,值得信赖

随着洗地机爆发式的增长&#xff0c;人们对洗地机已经不再感到陌生了&#xff0c;周围很多朋友都纷纷入手了心仪的产品&#xff0c;但是&#xff0c;在激烈竞争的洗地机中&#xff0c;如何选到心仪的洗地机呢&#xff0c;快来深入了解洗地机选购技巧以及热门洗地机的功能特点吧…

基于EasyAnimate模型的视频生成最佳实践

EasyAnimate是阿里云PAI平台自主研发的DiT的视频生成框架&#xff0c;它提供了完整的高清长视频生成解决方案&#xff0c;包括视频数据预处理、VAE训练、DiT训练、模型推理和模型评测等。本文为您介绍如何在PAI平台集成EasyAnimate并一键完成模型推理、微调及部署的实践流程。 …

数据分析-相关性

0、提高数据样本质量 首先是确保数据采集的准确性与可靠性&#xff0c;也就是如何降低数据误差 系统误差是由测量工具不精确和测量方法选择不当造成的。这类误差我们可以通过校准工具或者选择更合适的测量方法来消除&#xff1b;随机误差是由环境因素等外部不可控原因导致的&…

PXE无人值守批量装机操作步骤

目录 PXE PXE所需环境 开机过程 部署PXE有人值守操作步骤 一. 配置环境 FTP DHCP和TFTP 二. 测试 部署无人值守操作步骤 一. 环境配置 二. 测试 总结 1. 实现PXE远程装机所需要的组件 2. PXE网络引导安装过程 PXE PXE&#xff1a;Preboot eXecution Environment…

印刷企业数字工厂管理系统规划方案

一、引言 随着科技的快速发展&#xff0c;数字化、智能化已成为制造业发展的重要趋势。对于印刷企业而言&#xff0c;数字化不仅是提升生产效率、降低成本的关键&#xff0c;更是适应市场变化、增强竞争力的必然选择。因此&#xff0c;本规划方案旨在构建一套完善的印刷企业数…

功能测试 之 单模块测试----抢购模块

1.先测后台&#xff0c;再测前台 面试题1: 当你发现研发实现的结果与需求不一致时怎么办? 需求评审的时候&#xff1a;需要确认所有输入类型的校验是针对单独的输入框做的还是在最终提交时校验 抢购模块&#xff1a;需求跟实现的内容不一致 (跟产品和研发一起确认。研发为什…

现在的ai是否和当年的5g一样被夸大了

AI写作、AI绘画对普通人影响也很大&#xff0c;为此也成就了一大批人。这是一个大趋势&#xff0c;AI能极大提高工作效率&#xff0c;这点毋庸置疑。不仅如此&#xff0c;对于普通人来说AI也对我们有很大的帮助&#xff0c;用AI回答遇到的问题&#xff0c;写一写文章什么的&…

003.Linux SSH协议工具

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

储备教师和正式教师的区别是什么?

当谈论教育行业的未来&#xff0c;是否曾想过&#xff0c;那些被称为"储备教师"的群体&#xff0c;与我们熟知的"正式教师"之间&#xff0c;有何本质的区别&#xff1f; 储备教师&#xff0c;顾名思义&#xff0c;是学校为了应对未来可能的教学需求而提前招…

【C语言 || 排序】希尔排序

文章目录 前言1.希尔排序1.1 直接插入排序1.2 直接插入排序的实现1.2.1 直接插入排序的代码实现 1.3 直接插入排序的时间复杂度1.4 希尔排序1.4.1 希尔排序概念1.4.1 希尔排序的代码实现 前言 1.希尔排序 1.1 直接插入排序 在写希尔排序之前&#xff0c;我们需要先了解直接插入…

Boost 网络库

asio 网络编程的基本流程创建 socket绑定acceptor连接指定的端点服务器接受连接 网络编程的基本流程 服务端 1&#xff09;socket----创建socket对象。 2&#xff09;bind----绑定本机ipport。 3&#xff09;listen----监听来电&#xff0c;若在监听到来电&#xff0c;则建…

Java 开发面试题精选:RocketMQ 一篇全搞定

前言 RocketMQ作为一个高性能、高可用的分布式消息和流处理平台&#xff0c;广泛应用于分布式系统中的解耦、异步通信和数据流处理场景。这篇文章我精选了一些关于RockerMQ面试题目&#xff0c;这些问题涵盖了RocketMQ的所有关键知识点&#xff0c;从基本概念到高级应用&#…

堪称2024最强的前端面试场景题,让419人成功拿到offer

前言 2024年的秋季招聘还有两个月就即将到来&#xff0c;很多同学开始思考前端面试中场景题的重要性。这里我提供一些见解和建议来帮助大家准备即将到来的面试。 首先&#xff0c;理解面试中场景题的必要性是至关重要的。与算法或理论问题不同&#xff0c;场景题更贴近实际工…

从网络配置文件中提取PEAP凭据

我的一位同事最近遇到了这样一种情况&#xff1a;他可以物理访问使用802.1X连接到有线网络的Windows计算机&#xff0c;同时保存了用于身份验证的用户凭据&#xff0c;随后他想提取这些凭据&#xff0c;您可能认为这没什么特别的&#xff0c;但是事情却有点崎岖波折…… 如何开…

利用AI云防护实现高效负载均衡

在当今高度数字化的世界里&#xff0c;保证网站和应用的高可用性和响应速度对企业的业务连续性和用户体验至关重要。传统的负载均衡技术虽然能够分发流量&#xff0c;但在面对突发流量、DDoS攻击或资源动态调整时往往力不从心。本文将探讨如何借助AI云防护服务&#xff0c;不仅…

使用芯片为ZYNQ—7020,基于野火FPGA ZYNQ开发板

使用芯片为ZYNQ—7020&#xff0c;基于野火FPGA ZYNQ开发板 肤色模型简介 YCrCb也称为YUV&#xff0c;主要用于优化彩色视频信号的传输。与RGB视频信号传输相比&#xff0c;它最大的优点在于只需占用极少的频宽&#xff08;RGB要求三个独立的视频信号同时传输&#xff09;。其…