Properties与xml

一、Properties

**定义:**Properties文件主要用于存储配置信息,如数据库连接信息、系统设置等。它是一个键值对集合,其中的键和值都是字符串类型。

是一个Map集合(键值对集合),但是我们一般不会当集合使用。

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

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

1.1 xml

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

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

1.2 特点

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

如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后一般要写成.xml。

抬头声明

在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是一种通用的、兼容多种语言的字符编码。
  • ?> 是声明结束的标记。

特殊字符及其对应的实体引用:

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

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

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

1.2 xml作用和应用场景

本质是一种数据格式,可以存储复杂的数据结构,和数据关系。
应用场景:经常用来做为系统的配置文件;或者作为一种特殊的数据结构,在网络中进行传输。

1.3 解析XML文件

使用程序读取XML文件中的数据

Dom4j

三、区别

关系归纳

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

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

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

相关文章

第五十七周:文献阅读

目录 摘要 Abstract 文献阅读&#xff1a;基于遗传算法的PM2.5时间序列预测深度学习模型超参数优化 一、现有问题 二、提出方法 三、方法论 1、HPO&#xff08;猎人猎物算法&#xff09; 2、深度学习算法 递归神经网络&#xff08;RNN&#xff09; LSTM GRU 3、GA…

20240613日志:COPAL

Location: Beijing 1 大模型剪枝 Fig. 1.1大模型压缩-剪枝 剪枝的分类&#xff1a;结构化修剪对于简化大型语言模型和提高其效率尤其相关。非结构化修剪关注的是选择性地去除单个权重&#xff0c;旨在消除网络中不那么关键的连接。 修剪的基于阶段的分类&#xff1a;修剪可以在…

解决Pycharm远程连接WSL2的python解释器,使用调试模式时显示超时的问题

环境 windows 11wsl2ubuntu20.04pycharm2023.3.3 问题 Pycharm远程连接WSL2的python解释器&#xff0c;使用调试模式时显示超时 分析 TCP连接错误。 解决方法 windows高级防火墙设置->入站规则->找到pycharm2023.3.3的TCP连接规则->双击允许连接 步骤截图见下…

【C语言】解决C语言报错:Use of Uninitialized Variable

文章目录 简介什么是Use of Uninitialized VariableUse of Uninitialized Variable的常见原因如何检测和调试Use of Uninitialized Variable解决Use of Uninitialized Variable的最佳实践详细实例解析示例1&#xff1a;局部变量未初始化示例2&#xff1a;数组未初始化示例3&…

Explain Python Machine Learning Models with SHAP Library

Explain Python Machine Learning Models with SHAP Library – Minimatech &#xff08;能翻墙直接看原文&#xff09; Explain Python Machine Learning Models with SHAP Library 11 September 2021Muhammad FawiMachine Learning Using SHapley Additive exPlainations …

Linux--MQTT(二)通信基本原理

一、MQTT 通信基本原理 MQTT 是一种基于 客户端 - 服务端 架构的消息传输协议&#xff0c;所以在 MQTT 协议通信中&#xff0c;有两个最为重要的角色&#xff0c;它们便是服务端 和 客户端 。 举例&#xff1a;若开发板向“芯片温度”这一主题发布消息&#xff0c;那么服务…

父亲节:我要做爸爸的健康监督员

父亲节将至&#xff0c;总想着能为爸爸做些什么&#xff0c;来表达我们的感激与关爱。在这个特殊的日子里&#xff0c;成为爸爸的健康监督员&#xff0c;用华为 Watch 4 的智慧健康功能&#xff0c;任何时刻都可以关注爸爸的健康状况&#xff0c;放心又安心了。 用一键微体检…

创建一个electron桌面备忘录

Sound Of Silence 1.创建electron项目命令&#xff1a; npm create quick-start/electron my-new-project 2选择&#xff1a;√ Select a framework: vue √ Add TypeScript? ... No √ Add Electron updater plugin? ... Yes √ Enable Electron download mirror proxy? .…

多模态大模型:基础架构

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则…

【使用 WSL子系统 在 Windows 上安装 Linux(官方教程)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、使用 wsl --install二、额外的命令 前言 在最新的Windows Insider Preview版本中&#xff0c;只需运行wsl.exe-install&#xff0c;就可以安装运行WSL所需…

Matlab|基于V图的配电网电动汽车充电站选址定容-可视化

1主要内容 基于粒子群算法的电动汽车充电站和光伏最优选址和定容 关键词&#xff1a;选址定容 电动汽车 充电站位置 仿真平台&#xff1a;MATLAB 主要内容&#xff1a;代码主要做的是一个电动汽车充电站和分布式光伏的选址定容问题&#xff0c;提出了能够计及地理因素和服…

【原创】springboot+mysql小区用水监控管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

C++ 45 之 赋值运算符的重载

#include <iostream> #include <string> #include <cstring> using namespace std;class Students05{ public:int m_age;char* m_name;Students05(){}Students05(const char* name,int age){// 申请堆空间保存m_name;this->m_name new char[strlen(name)…

Kotlin 语言基础学习

什么是Kotlin ? Kotiln翻译为中文是:靠他灵。它是由JetBrains 这家公司开发的,JetBrains 是一家编译器软件起家的,例如常用的WebStorm、IntelliJ IDEA等软件。 Kotlin官网 JetBrains 官网 Kotlin 语言目前的现状: 目前Android 已将Kotlin 作为官方开发语言。 Spring 框…

应急响应 | 基本技能 | 01-系统排查

系统排查 目录 系统基本信息 Windows系统Linux系统 用户信息 Windows系统 1、命令行方式2、图形界面方法3、注册表方法4、wmic方法 Linux系统 查看所有用户信息分析超级权限账户查看可登录的用户查看用户错误的登录信息查看所有用户最后的登录信息查看用户最近登录信息查看当…

快速上手SpringBoot

黑马程序员Spring Boot2 文章目录 1、SpringBoot 入门程序开发1.1 创建一个新的项目 2、浅谈入门程序工作原理2.1 parent2.2 starter2.3 引导类2.4 内嵌tomcat 1、SpringBoot 入门程序开发 1.1 创建一个新的项目 file > new > project > empty Project 创建新模块&a…

ubuntu20.04桌面蓝屏问题解决

前些天做仿真项目&#xff0c;遇到了ubuntu蓝屏问题&#xff0c;于是想着找几个参考办法修复&#xff0c;但不管用&#xff0c;疑似是重要组件损坏。 损坏的原因是强制关机&#xff0c;但究竟是强制关了哪一个卡死的进程&#xff0c;不得而知&#xff0c;我有一个关不掉的仿真…

Waf 绕过手法测试

设备类型 由上到下,waf的检测细腻度依次降低 网络层WAF&#xff1a;先拦截流量&#xff0c;进行检测后再转发给 应用层WAF&#xff1a;先经过apache/nginx解析后再交给php处理 云 WAF&#xff08;CDNWAF&#xff09;&#xff1a;简单的看成CDN加上软件WAF的结合体&#xff0c…

vue格网图

先看效果 再看代码 <n-gridv-elsex-gap"20":y-gap"20"cols"2 s:2 m:3 l:3 xl:3 2xl:4"responsive"screen" ><n-grid-itemv-for"(item,index) in newSongList":key"item.id"class"cursor-pointer …

Spring底层架构核心概念解析

BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点.比如: beanClass:表示Bean类型scope:表示Bean作用域,单例/原型等lazyInit:表示Bean是否懒加载initMethodName:表示Bean初始化时要执行的方法destoryMethodName:表示Bean销毁时…