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.hqwc.cn/news/215126.html

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

相关文章

语音合成综述Speech Synthesis

一、语音合成概述 语音信号的产生分为两个阶段&#xff0c;信息编码和生理控制。首先在大脑中出现某种想要表达的想法&#xff0c;然后由大脑将其编码为具体的语言文字序列&#xff0c;及语音中可能存在的强调、重读等韵律信息。经过语言的组织&#xff0c;大脑通过控制发音器…

Jmeter脚本录制:抓取IOS手机请求包

现在移动端的项目越来越多&#xff0c;今天给大家介绍一下&#xff0c;在IOS下Jmeter如何抓包。 1、电脑连上wifi 2、Jmeter中配置“HTTP代理服务器” 1)启动Jmeter&#xff1b; 2)“测试计划”中添加“线程组”&#xff1b; 3)“测试计划”中添加“HTTP代理服务器”&…

基于Springboot的冬奥会科普平台(有报告),Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的冬奥会科普平台&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

2024北京林业大学计算机考研分析

24计算机考研|上岸指南 北京林业大学 特色优势 Characteristics & Advantages&#xff1a;信息学院创建于2001年&#xff0c;是一个年轻而有朝气的学院。学院秉承“结构、特色、质量、创新”的八字方针&#xff0c;坚持以“质量提升、行业融合”为核心的内涵式发展战略&am…

Go 语言中的 Switch 语句详解

switch语句 使用switch语句来选择要执行的多个代码块中的一个。 在Go中的switch语句类似于C、C、Java、JavaScript和PHP中的switch语句。不同之处在于它只执行匹配的case&#xff0c;因此不需要使用break语句。 单一case的switch语法 switch 表达式 { case x:// 代码块 cas…

信息收集小练习

信息收集小练习 本文章无任何恶意攻击行为&#xff0c;演示内容都合规无攻击性 演示如何绕过cdn获取真实ip 使用多地ping该网站 发现有很多ip地址&#xff0c;证明有cdn 此处使用搜索引擎搜索&#xff0c;得到ip 演示nmap工具的常用参数 此处以testfire.net为例 使用多地p…

Netty实现websocket且实现url传参的两种方式(源码分析)

1、先构建基本的netty框架 再下面的代码中我构建了一个最基本的netty实现websocket的框架&#xff0c;其他个性化部分再自行添加。 Slf4j public class TeacherServer {public void teacherStart(int port) throws InterruptedException {NioEventLoopGroup boss new NioEve…

Prometheus环境搭建和认识

Prometheus 环境搭建 1.prometheus 简介 Prometheus是基于go语言开发的一套开源的监控、报警和时间序列数据库的组合&#xff0c;是由SoundCloud公司开发的开源监控系统&#xff0c;Prometheus于2016年加入CNCF&#xff08;Cloud Native Computing Foundation,云原生计算基金…

前端 vue 面试题(二)

文章目录 如何让vue页面重新渲染组件间通信vue为什么要mutation、 action操作插槽、具名插槽、作用域插槽vue编译使用的是什么库&#xff1f;vue怎么实现treeshakingwebpack实现treeshaking为什么只有es module 能支持 tree shaking mixin 的作用mixin的底层原理nexTick原理vue…

set和map + multiset和multimap(使用+封装(RBTree))

set和map 前言一、使用1. set(1)、模板参数列表(2)、常见构造(3)、find和count(4)、insert和erase(5)、iterator(6)、lower_bound和upper_bound 2. multiset3. map(1)、模板参数列表(2)、构造(3)、modifiers和operations(4)、operator[] 4. multimap 二、封装RBTree迭代器原理R…

python——第十三天

uuid 是通用唯一识别码&#xff08;Universally Unique identifier&#xff09;的缩写 UUID是一个128比特的数值 uuid模块&#xff1a; 获取一个128位&#xff08;比特&#xff09;的永不重复的数字&#xff0c;当然我们使用的时候会转换为32个的字符串 impor uuud uui…

React + BraftEditor 实现富文本编辑

Braft Editor 是一个基于 React 和 Draft-js 开发的富文本编辑器&#xff0c;提供了丰富的基础功能&#xff0c;如基本文本格式化、列表、链接、图片上传、视频插入等&#xff0c;并且还支持扩展。 首先&#xff0c;确保你已经在项目中安装了 Braft Editor 和它的依赖项&#x…