Java特殊文件

Properties

 读取数据

package com.itheima.d1;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
import java.util.Set;public class Test1 {public static void main(String[] args) throws Exception {//创建一个Properties的对象出来(键值对集合,空容器)Properties properties = new Properties();System.out.println(properties);//2、开始加载属性文件中的键值对实际到properties对象中去properties.load(new FileReader("wenjian\\src\\users.properties"));System.out.println(properties);//3、根据键取值System.out.println(properties.getProperty("小明"));System.out.println(properties.getProperty("admin"));//4、遍历全部的键和值Set<String> keys = properties.stringPropertyNames();for (String key : keys) {String value = properties.getProperty(key);System.out.println(key + "------>" + value);}properties.forEach((k,v) ->{System.out.println(k + "------>" + v);});}
}

 输入数据

package com.itheima.d1;import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;public class Test2 {public static void main(String[] args) throws Exception {//1、创建Properties对象出来,先用他存储一些键值对数据Properties properties = new Properties();properties.setProperty("小明", "123456");properties.setProperty("小王", "123");properties.setProperty("小白", "666");//2、把properties对象中的键值对数据存入到属性文件里去properties.store(new FileWriter("wenjian/src/user.properties"),"save");}
}

XML文件

概述

 创建XML文件

<?xml version="1.0" encoding="utf-8" ?>
<!--注释:以上抬头声明必须放在第一行,必须有-->
<!--跟标签-->
<users><ueser> id="1"<name>小明</name><sex>男</sex><地址>学校</地址><password>123456</password><date> 3 &lt; 2 &amp;&amp; 5 > 4</date><date1><![CDATA[3 < 2 && 5 > 4]]></date1></ueser><ueser id="2"><name>小王</name><sex>男</sex><地址>图书馆</地址><password>123</password><date> 3 &lt; 2 &amp;&amp; 5 > 4</date></ueser>
</users>

 

读取XML文件中的数据 

 

注意:解析XML文件只能自上而下解析即先读取根元素对象再读取根元素对象之下的子元素对象

Element提供的方案

package com.itheima.d2;import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.*;import javax.xml.parsers.SAXParser;
import java.nio.charset.StandardCharsets;
import java.util.List;public class Test1 {public static void main(String[] args) throws Exception {//1、创建一个Dom4j框架提供的解析对象SAXReader saxReader = new SAXReader();//2、使用saxReader对象把需要解析的XML文件读成一个Document对象Document document = saxReader.read("wenjian\\src\\helloworld.xml");//3、从文档对象中解析XML文件的全部数据Element root = document.getRootElement();System.out.println(root.getName());//4、获取根元素下的全部一级元素。List<Element> elements = root.elements();for (Element element : elements) {System.out.println(element.getName());}//5、获取当前元素下的某个子元素Element people = root.element("people");System.out.println(people.getText());//如果下面有很多子元素,默认获取第一个Element user = root.element("user");System.out.println(user.elementText("name"));//6、如何获取元素的属性信息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 date = user.element("date");System.out.println(date.getText());System.out.println(date.getTextTrim());//取出文本去除前后空格}
}

 把数据写入到XML中去

package com.itheima.d2;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;/*** 目标:如何使用程序把数据写出到XML文件中去。* <?xml version="1.0" encoding="UTF-8" ?>* <book>*     <name>Java从入门到入土</name>*     <autor>dlei</autor>*     <price>999.9</price>* </book>*/
public class Test2 {public static void main(String[] args) {//1、使用一个StringBuilder对象来拼接XML格式的数据StringBuilder sb = new StringBuilder();sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");sb.append("<book>\r\n");sb.append("\t<name>").append("Java从入门到入土").append("</name>\r\n");sb.append("\t<autor>").append("dlei").append("</autor>\r\n");sb.append("\t<price>").append(999.9).append("</price>\r\n");sb.append("</book>");try (BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("wenjian/src/book1.xml"));){bufferedWriter.write(sb.toString());} catch (Exception e) {e.printStackTrace();}}
}
<?xml version="1.0" encoding="UTF-8" ?>
<book><name>Java从入门到入土</name><autor>dlei</autor><price>999.9</price>
</book>

约束XML文件

 

 不能约束具体的数据类型

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

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

相关文章

Handler系列-怎么实现delay

1.前提 前面说到sendMessage携带的delay会被加上SystemClock.uptimeMillis() &#xff0c;最终赋值给Message的when。 msg.when SystemClock.uptimeMillis() delayMillis; 那么when除了用来在链表里面作为排序依据以外&#xff0c;还在哪里用到了呢&#xff1f; 2.Looper…

【SpringCloud】设计原则之分层架构与统一通信协议

一、设计原则之分层架构 应用分层看起来很简单&#xff0c;但每个程序员都有自己的一套方法&#xff0c;哪怕是初学者&#xff0c;所以实施起来并非易事 最早接触的分层架构应该是最熟悉的 MVC&#xff08;Model - View - Controller&#xff09;架构&#xff0c;其将应用分成…

吴恩达《机器学习》10-4-10-5:诊断偏差和方差、正则化和偏差/方差

一、诊断偏差和方差 在机器学习中&#xff0c;诊断偏差和方差是改进模型性能的关键步骤。通过了解这两个概念&#xff0c;能够判断算法的问题究竟是欠拟合还是过拟合&#xff0c;从而有针对性地调整模型。 1. 概念理解 偏差&#xff08;Bias&#xff09;&#xff1a; 表示模…

Oracle 最终抛弃了 Sun !

随着 Solaris 团队的彻底完蛋&#xff0c;看起来 Sun 微系统公司最终连块骨头都没剩下。 来自前 Sun 社区的消息表明&#xff0c;一月份的传闻&#xff08;Oracle 裁员 450 人&#xff09;成为了现实&#xff0c;上周五&#xff0c;Oracle 裁掉了 Solaris 和 SPARC 团队的核心员…

5.7 Windows驱动开发:取进程模块函数地址

在笔者上一篇文章《内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址&#xff0c;由于是入门系列所以并没有封装实现太过于通用的获取函数&#xff0c;本章将继续延申这个话题&#xff0c;并依次实现通用版…

Debian 11.3 ARM64 安装中文语言包

文章目录 Debian 介绍1、执行命令2、语言选择3、修改设置 Debian 介绍 Debian是一种自由开源的操作系统&#xff0c;被广泛用于服务器、个人计算机和嵌入式设备。它是由全球志愿者组成的开发团队开发和维护的&#xff0c;以稳定性、安全性和自由性而闻名。 以下是一些关于Deb…

分块矩阵知识点整理:

1.分块方法&#xff1a;横竖线不能拐弯&#xff0c;思想为将矩阵分块看作向量计算 2.标准型 不一定是方的 特殊性&#xff1a;经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算: 1.加减乘的运算与向量运算相同 4.分块矩阵求转置&#xff1a; 1.将子块看作普通元素求转置 2…

2017年4月10日 Go生态洞察:开发者体验工作组介绍

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

计算机应用基础_错题集_PPT演示文稿_操作题_计算机多媒体技术操作题_文字处理操作题---网络教育统考工作笔记007

PPT演示文稿操作题 提示:PPT部分操作题 将第2~第4张幻灯片背景效果设为渐变预置的“雨后初晴”效果(2)设置幻灯片放映方式

HTTP/2:多路复用、服务器推送和首部压缩的革命

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【小沐学写作】免费在线AI辅助写作汇总

文章目录 1、简介2、文涌Effidit&#xff08;腾讯&#xff09;2.1 工具简介2.2 工具功能2.3 工具体验 3、PPT小助手&#xff08;officeplus&#xff09;3.1 工具简介3.2 使用费用3.3 工具体验 4、DeepL Write&#xff08;仅英文&#xff09;4.1 工具简介4.2 工具体验 5、天工AI…

Linux学习记录

Linux 文章目录 LinuxLinux发行版Debian 分支Red Hat 分支Arch Linux 分支 服务器基础操作lscat和less设置权限删除文件和目录搜索文件 cmake使用文件 Linux发行版 一个典型的 Linux 发行版除了 Linux 内核以外&#xff0c;通常还会包括一系列 GNU 工具和库、一些附带的软件、…

华为云需求管理CodeArts Req常见问答汇总

1.【Req】看板、Scrum、IPD系统设备类、IPD独立软件类、IPD自运营软件5种模板有什么区别&#xff0c;如何选择 答&#xff1a;看板是业界流行的轻量、灵活和简单的团队协作方法&#xff0c;没有工作项的Epic/Feature/Story层级划分&#xff0c;直接将需求、任务和缺陷可视化&a…

单片机AT89C51直流电机控制电路PWM设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;直流电机 获取论文报告源码源程序原理图 此文将介绍一种直流电机&#xff0c;详细阐述了用单片机输出口所给占空比的不同实现电机的调速的设计方法&#xff1b;着重讨论L298用于电机驱动时特有的优势。直流电机调速具有…

docker devicemapper: Error running DeleteDevice dm_task_run failed

docker 删除容器&#xff0c;遇到&#xff1a; devicemapper: Error running DeleteDevice dm_task_run failed 异常 [hadoophadoop02 ~]$ sudo docker rm 5ede1280f0bf Error response from daemon: container 5ede1280f0bf791e91d40038b15decd42e8923546ae578abd96e08114c76…

Python基础语法之判断语句

1.布尔类型和比较运算符 布尔类型&#xff1a;数字类型的一种。 比较运算符&#xff1a; > < > < ! 2.if语句基本格式 if 要判断的条件&#xff1a; 条件成立&#xff0c;即做~ 例子&#xff1a; 注意&#xff1a;格式上冒号和缩进 3.if else组合…

result.append(path[:]) 和 result.append(path) 之间的区别

result.append(path[:]) 和 result.append(path) 之间有一个重要的区别&#xff0c;这涉及到对列表的浅拷贝。 result.append(path)&#xff1a; 这样直接将 path 添加到 result 中。由于列表是可变对象&#xff0c;result 中存储的是对 path 列表的引用。如果后续修改了 path…

2023年【道路运输企业安全生产管理人员】最新解析及道路运输企业安全生产管理人员复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员最新解析是安全生产模拟考试一点通总题库中生成的一套道路运输企业安全生产管理人员复审考试&#xff0c;安全生产模拟考试一点通上道路运输企业安全生产管理人员作业手机同步练习。2023…

matlab三维地形图

matlab三维地形图 %%%%—————Code to draw 3D bathymetry—————————— %-------Created by bobo,10/10/2021-------------------- clear;clc;close all; ncdisp E:\data\etopo\scs_etopo.nc filenmE:\data\etopo\scs_etopo.nc; londouble(ncread(filenm,lon)); lat…

ruoyi 前后分离部署502

ruoyi 前后分离部署502 我使用了nginx部署前端&#xff0c;使用docker部署。nginx文件如下&#xff1a; server {listen 8086; #设置端口listen [::]:8086; #设置端口server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {root /…