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文件都具有较好的平台兼容性,可在多种操作系统和平台上使用。

如有错误烦请指正

感谢您的阅读

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 在线程中更新界面

在Android中&#xff0c;你不能直接从子线程中更新UI&#xff0c;因为这会导致应用崩溃。你需要使用Handler或runOnUiThread()来更新UI。 使用Handler 以下是如何使用Handler在子线程中更新UI的示例&#xff1a; 1. 创建Handler实例&#xff1a; import android.os.Bundle;…

产品经理方法论

1、用户体验 5 要素 1&#xff0c;表现层是你拿到一个产品以后&#xff0c;视觉表现&#xff0c;配色&#xff0c;布局&#xff0c;排版等等 2&#xff0c;框架层&#xff0c;是交互层面的东西&#xff0c;比如&#xff0c;操作情况&#xff0c;刷新&#xff0c;页面跳转&…

ChatmoneyAI如狂风般席卷广告创意舞台,轻松闯荡财富之海!

本文由 ChatMoney团队出品 引言 在广告创意行业&#xff0c;创新和高效是赢得市场的关键。而我今天要分享的就是如何利用ChatmoneyAI这款强大的人工智能工具&#xff0c;打破创新难题&#xff0c;赚取丰厚收益。 让我告诉你一个小秘密&#xff0c;有客户曾在一个月内&#xf…

git merge(3个模式) 与 git rebase 图文详解区别

目录 1 git merge1.1 模式一&#xff1a;fast-forward(–ff)1.2 模式二&#xff1a;non-Fast-forward(–no-ff)1.3 模式三&#xff1a;fast-forward only(–ff-only) 2 git rebase3 区别 1 git merge git merge有好几种不同的模式 默认情况下你直接使用 git merge 命令&#x…

从boost库到时间戳

一、以问题引入 授权证书一般有到期时间的说法&#xff0c;公司测试同事在测试更新后的证书时&#xff0c;将系统时间调到了2050年&#xff0c;重启服务后发现各个进程的cpu占用率特别高&#xff1b;结合日志分析&#xff0c;发现这些进程 都在不停的刷heartbeat()的日志&#…

C++17并行算法与HIPSTDPAR

C17 parallel algorithms and HIPSTDPAR — ROCm Blogs (amd.com) C17标准在原有的C标准库中引入了并行算法的概念。像std::transform这样的并行版本算法保持了与常规串行版本相同的签名&#xff0c;只是增加了一个额外的参数来指定使用的执行策略。这种灵活性使得已经使用C标准…

AI 音乐大模型:创新的曙光还是创意产业的阴影?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

[面试题]Kafka

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

RAG(检索增强生成)的演变:初级 RAG、高级 RAG 和模块化 RAG 架构

大型语言模型&#xff08;LLMs&#xff09;通过在自然语言任务及其它领域的成功应用&#xff0c;如 ChatGPT、Bard、Claude 等所示&#xff0c;已经彻底改变了 AI 领域。这些 LLMs 能够生成从创意写作到复杂代码的文本。然而&#xff0c;LLMs 面临着幻觉、过时知识和不透明、无…

基于ChatGPT的大型语言模型试用心得

近年来&#xff0c;ChatGPT这样的大型语言模型&#xff0c;它如同一颗冉冉升起的新星&#xff0c;迅速在商业、教育、娱乐等多个领域照亮了创新的天空&#xff0c;极大地革新了我们的工作与日常生活。 最近我发现一些国内用户也能自由访问的中文ChatGPT APP。这个平台不仅提供…

10招教你玩转Python循环优化

更多Python学习内容&#xff1a;ipengtao.com 在Python编程中&#xff0c;循环是最常见的控制结构之一。尽管Python的循环语法简单明了&#xff0c;但在处理大量数据或进行复杂计算时&#xff0c;循环可能会成为性能瓶颈。本文将介绍10种加速Python循环的方法&#xff0c;帮助在…

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel)&#xff1a; 操作系统的基本部分 管理与硬件相关的功能&#xff0c;分模块进行 常驻模块&#xff1a;进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛&#xff0c;实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法 最近在多个客户现场以及公司内部环境&#xff0c;都遇到了因为 JournalNode 异常导致 HDFS 服务不可用的问题&#xff0c;在此总结下相关知识。 1 HDFS HA 高可用和 JournalNode 概述 HDFS namenode 有 SPOF 单点故障…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09;1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

上海中腾食品科学餐饮管理铸就企业食堂新模式

在当今企业运营中&#xff0c;食堂不仅是员工用餐的场所&#xff0c;更是企业文化和管理水平的体现。随着餐饮行业的不断发展&#xff0c;科学合理的餐饮管理模式成为了企业食堂成功的关键。上海中腾食品科技有限公司以其独特的餐饮管理模式&#xff0c;成功打造了企业食堂的新…

CSS3中鲜为人知但非常强大的 Clip-Path 属性

CSS3中鲜为人知但非常强大的 Clip-Path 属性 在CSS3中,clip-path属性可以让我们快速创建各种各样的不规则图形,而无需使用图片或者复杂的绘图工具。它可以帮助我们实现一些非常出色的视觉效果,但遗憾的是它并不是很常见。 clip-path属性可以接受多种不同的值,比如polygon()、…

静态网页发送基本请求

目录 一、 发送 GET 请求 1&#xff0e;不携带 url 参数的 GET 请求 2&#xff0e;携带 url 参数的 GET 请求 二、发送 POST 请求 三、处理响应 1&#xff0e;获取网页源代码 2&#xff0e;获取图片 一、 发送 GET 请求 当用户在浏览器的地址栏中直接输入某个 URL 地址…

海量数据处理利器 Roaring BitMap 原理介绍

作者&#xff1a;来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用&#xff0c;分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时&#xff0c;…

公域+私域运营思路框架

本次分享公域私域运营思路框架&#xff0c;内容包括私域原则、公域引流、让利思维、价值体系等内容&#xff0c;让你的流量保持高留存、高活跃。