Java特殊文件

news2024/11/15 13:59:02

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.coloradmin.cn/o/1248049.html

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

相关文章

免费时代结束:百度云加速取消所有免费套餐

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 在网站时代&#xff0c;凭借着“品牌”“SEO”“免费”的优势&#xff0c;百度云加速一跃成为国内最大的CDN服务商。但随着站长时代结束&#xff0c;和网站相关的产品越来越少&#xff0c;收费的名…

【极客技术】真假GPT-4?微调 Llama 2 以替代 GPT-3.5/4 已然可行!

近日小编在使用最新版GPT-4-Turbo模型&#xff08;主要特点是支持128k输入和知识库截止日期是2023年4月&#xff09;时&#xff0c;发现不同商家提供的模型回复出现不一致的情况&#xff0c;尤其是模型均承认自己知识库达到2023年4月&#xff0c;但当我们细问时&#xff0c;Fak…

系统安全测试要怎么做?

进行系统安全测试时&#xff0c;可以按照以下详细的步骤进行&#xff1a; 1、信息收集和分析&#xff1a; 收集系统的相关信息&#xff0c;包括架构、部署环境、使用的框架和技术等。 分析系统的安全需求、威胁模型和安全策略等文档。 2、威胁建模和风险评估&#xff1a; …

野指针详解

1.定义 概念&#xff1a; 野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的、没有明确限制的&#xff09;。 2.野指针成因 A.指针未初始化 #include <stdio.h> int main() { int *p;//局部变量指针未初始化&#xff0c;默认为随机值*p 20;return 0;…

GitHub Copilot:做出一个划时代的产品,只需要 6 个人

当前&#xff0c;Copilot 已经成为国内开发者常用的辅助工具。就像有的开发者评价称&#xff0c; “编码时&#xff0c;我希望干扰最少。在这方面&#xff0c;Copilot 给我提供了巨大的帮助。它减少了我可能花在网络上寻找解决方案的时间&#xff0c;而且它们在我最喜欢的 IDE …

C#学习相关系列之base和this的常用方法

一、base的用法 Base的用法使用场景主要可以概括为两种&#xff1a; 1 、访问基类方法 2、 调用基类构造函数 使用要求&#xff1a;仅允许用于访问基类的构造函数、实例方法或实例属性访问器。从静态方法中使用 base 关键字是错误的。所访问的基类是类声明中指定的基类。 例如&…

Latex 基本操作

好久没写博客了&#xff0c;最近一直在写毕业论文&#xff0c;不过对 Latex 的使用进一步了解&#xff0c;这里整理下来方便小伙伴们学习和参考。可以在 Gituhub 上找自己学校的模板&#xff0c;通常我们都是在找到的模板上进行写作&#xff0c;只需要掌握一下基本操作&#xf…

生物动力葡萄酒和有机葡萄酒一样吗?

农业维持了数十万年的文明&#xff0c;但当人类以错误的方式过多干预&#xff0c;过于专注于制造和操纵产品时&#xff0c;农业往往会失败。如果我们的目标是获得最高质量的收成&#xff0c;并长期坚持我们的做法&#xff0c;我们就必须与土地打交道。 当我们开始寻找生物动力…

Java Web——XML

1. XML概述 XML是EXtensible Markup Language的缩写&#xff0c;翻译过来就是可扩展标记语言。XML是一种用于存储和传输数据的语言&#xff0c;它使用标签来标记数据&#xff0c;以便于计算机处理和我们人来阅读。 “可扩展”三个字表明XML可以根据需要进行扩展和定制。这意味…

红队攻防实战之从边界突破到漫游内网(无cs和msf)

也许有一天我们再相逢&#xff0c;睁大眼睛看清楚&#xff0c;我才是英雄。 本文首发于先知社区&#xff0c;原创作者即是本人 本篇文章目录 网络拓扑图&#xff1a; 本次红队攻防实战所需绘制的拓扑图如下&#xff1a; 边界突破 访问网站&#xff1a; http://xxx.xxx.xxx…

Java之异常(下):自定义异常类

一、前言&#xff1a; 在我前面写的博客文章里有一篇叫《Java中关于自定义异常类的一些问题》&#xff0c;它里面讲到了大部分关于自定义异常的基础知识&#xff0c;如果大家想了解底层可以去那里查看。今天我将用一次细节的案例解析&#xff1a;我们所说的自定义异常类。 二、…

【学习篇】Linux中grep、sed、awk

Linux 文本处理三剑客 – awk, sed, grep grep过滤文本 https://zhuanlan.zhihu.com/p/561445240 grep 是 Linux/Unix 系统中的一个命令行工具&#xff0c;用于从文件中搜索文本或字符串。grep 代表全局正则表达式打印。当我们使用指定字符串运行 grep 命令时&#xff0c;如…

VMware安装windows操作系统

一、下载镜像包 地址&#xff1a;镜像包地址。 找到需要的版本下载镜像包。 二、安装 打开VMware新建虚拟机&#xff0c;选择用镜像文件。将下载的镜像包加载进去即可。

(Matalb回归预测)GA-BP遗传算法优化BP神经网络的多维回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码&#xff1a; 四、分享本文全部代码数据说明手册&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…

如何在 Web 应用程序中查找端点?

如何在 Web 应用程序中查找端点? 这篇文章主要讲述了如何在网络应用中找到端点。以下是文章的主要要点: 端点是网络服务的访问地址,通过引用这个URL,客户可以访问服务提供的操作。端点提供了寻址Web服务端点所需的信息。 HTTP消息是服务器和客户端之间交换数据的方式,包…

2023年c语言程序设计大赛

7-1 这是一道送分题 为了让更多的同学参与程序设计中来&#xff0c;这里给同学们一个送分题&#xff0c;让各位感受一下程序设计的魅力&#xff0c;并祝贺各位同学在本次比赛中取得好成绩。 注&#xff1a;各位同学只需将输入样例里的代码复制到右侧编译器&#xff0c;然后直…

电子作业指导书系统如何提高作业人员的培训效率和作业规范

在现代制造业中&#xff0c;提高生产效率和产品质量是企业不断追求的目标。而对于车间员工来说&#xff0c;如何提高生产培训效率和作业规范是一个重要的问题。电子作业指导书系统作为一种新型的生产管理工具&#xff0c;可以有效提高车间员工的生产培训效率和作业规范。本文将…

maven 将Jar包安装到本地仓库

window系统&#xff1a; 注意事项&#xff1a;在windows中&#xff0c;使用mvn指令将jar安装到本地仓库时&#xff0c;一定要将相关资源使用“"”包裹上&#xff0c;不然会报下面的错&#xff1a; mvn install:install-file "-DfileD:\BaiduNetdiskDownload\qianzixi…

全球服的游戏服务器架构设计

全球服的游戏服务器架构设计 版权声明 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资料见文末 主题 常见服务器端架构划分 不同类型游戏的架构选择与瓶颈 如何设计通用、可伸缩的…

python 爬百度热搜并生成词云

1、爬取百度body存入txt def get_baidu_hot():url "https://top.baidu.com/board?tabrealtime"headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&…