java中的特殊文件

properties配置文件

在Java中 xxx.propertiesxxx.xml 这两种文件在java中一般用于做项目配置文件.
我们可以把一些配置信息写到专门的配置文件中.把这个配置信息和java的主体代码分离开.让结构更加清晰明确.

properties文件

属性文件 :后缀名以properties结尾的文件.

属性文件中的数据都是以键值对的形式存储.

java 复制代码
info.welcome=欢迎使用《衣超市自助购物系统》
info.login.reg=1.登录 2.注册
info.select=请选择:

input.username=请输入用户名:
input.password=请输入密码:
input.error=输入有误,请重新输入!

login.error=登录失败!
login.success=登录成功!
reg.error=注册失败!
reg.success=注册成功!

username.notnull=用户名不能为空!
password.notnull=密码不能为空!

properties文件特点

  1. 只能是键值对形式
  2. 键不能重复
  3. 文件后缀名一般是.properties.
properties的常见方法
java 复制代码
//创建集合对象
        Properties map=new Properties();

        //添加数据
        //用map集合中的添加方法
        map.put("key1","value1");

        //Properties集合中数据一般用String类型(使用Properties特有的添加方法)
        map.setProperty("key2","value2");

        System.out.println(map);

properties集合继承于Map集合可以使用Map集合中的方法,但是建议使用properties集合特有的方法.(特有方法返回值都是String类型).

properties文件中数据的读写

写出数据


读取和写出文件的方法

使用IO流将数据写到txt文件中

java 复制代码
//1.创建属性集合
        Properties properties = new Properties();
        //2.添加数据
        properties.setProperty("zs","123");
        properties.setProperty("ls","123");
        properties.setProperty("ww","143");
        //3.把集合数据存储到文件中
        FileWriter fw = new FileWriter("D:\\Files\\note\\java_note\\Java\\IO学习\\user.txt");
        Set<String> strings = properties.stringPropertyNames();
        for (String key : strings) {
            String value = properties.getProperty(key);
            fw.write(key + "=" + value + "\r\n");
            //fw.flush();
        }
        fw.close();

用properties集合特有方法简化

java 复制代码
//1.创建属性集合
        Properties properties = new Properties();
        //2.添加数据
        properties.setProperty("zs","123");
        properties.setProperty("ls","123");
        properties.setProperty("ww","143");
        //3.把集合数据存储到文件中

        //使用properties特有方法简化写法
        //参数1:字符/字节流
        //参数2:注释
        properties.store(new FileWriter("D:\\Files\\note\\java_note\\Java\\IO学习\\user.txt")
                ,"This is a comment.");

将properties集合中的数据写到properties文件中只需要,将什么txt文件该为properties文件

java 复制代码
//1.创建属性集合
        Properties properties = new Properties();
        //2.添加数据
        properties.setProperty("zs","123");
        properties.setProperty("ls","123");
        properties.setProperty("ww","143");
        //3.把集合数据存储到文件中

        //使用properties特有方法简化写法
        //参数1:字符/字节流
        //参数2:注释
        properties.store(new FileWriter("D:\\Files\\code\\java\\Practice\\Object Oriented\\src\\str\\user.properties")
                ,"This is a comment.");

一般情况都是将properties集合中数据写到properties文件中 .
如果不想要注释,第二个参数传null

读取数据

用IO流也可以,但是十分繁琐.
用Properties 特有方法将数据读入集合

java 复制代码
		//读取文件数据
        //1.创建集合
        Properties properties = new Properties();
        //System.out.println(properties);
        //把文件中数据读到集合中
        properties.load(new FileReader("D:\\Files\\code\\java\\Practice\\Object Oriented\\src\\str\\user.properties"));
        System.out.println(properties);

XML文件

XML属于可扩展标记语言.

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

xml文件的创建

XML文件后缀名为:xml,第一行必须是文档声明.

文档声明必须顶头(第一行),第一行写注释也不行 .
根标签必须有

java 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!--一个XML文件中只能有一个根标签-->
<!--根标签-->
<user>
    
</user>

java 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!--一个XML文件中只能有一个根标签-->
<!--根标签-->
<users>
<!--子标签(属性是id)-->
    <user id="1">
        <username>liuyan</username>
        <!--标签里可以是子标签也可以是文本-->
        <password>123</password>
        <age>18</age>
    </user>

    <user id="2">
        <username>liqian</username>
        <password>234</password>
        <age>18</age>
    </user>
</users>

注释写法

生成注释快捷键Ctrl+/

java 复制代码
<!--注释内容-->

字符冲突解决

方法一

如果在输入文本时需要输入,如<,&等符号会发生冲突.
解决方法

用替代符号替代.个别替代符号如上图.
详细:https://www.w3school.com.cn/h.asp

java 复制代码
<massage>随便写... &lt; &lt; &lt; &lt;</massage>

查看xml文件效果方法,右键open in(在浏览器中打开)

方法二

使用上图CDATA数据区直接书写

CDATA数据区的快捷方式CD.

java 复制代码
		<massage>
           <![CDATA[随便写... <<<<  >>>> " ']]>
        </massage>

应用场景


系统的配置文件(用来存储数据)

读取XML文件中数据

用IO流解析读取XML文件,难度大!也相当繁琐!
可以使用第三方工具,如:Dom4j

Dom4j使用步骤


可以用https://mvn.coderead.cn/快速搜索下载

Dom4j的实现思想
java 复制代码
//1.创建解析器对象
        SAXReader saxReader = new SAXReader();

        //2.把xml文件加载到内存中,拿到Document对象
        //参数:xml文件路径
        File file = new File("D:\\Files\\code\\java\\Practice\\Object Oriented\\src\\str\\user.xml");
        Document document = saxReader.read(file);

        //3.获取根标签对象
        Element rootElement = document.getRootElement();

        //4.获取根标签下的一级子标签
        List<Element> elements1 = rootElement.elements();//获取根标签下所有一级子标签
        List<Element> elements2 = rootElement.elements("user");//获取根标签下所有user一级子标签
        System.out.println(elements1.size());//3
        System.out.println(elements2.size());//2

        //5.遍历集合
        for (Element userElement : elements2) {
            //6.获取user标签的属性对象
            //参数:属性名称(根据属性名称获取对应的属性对象)
            Attribute idObj = userElement.attribute("id");
            //获取id的属性值
            String idValue = idObj.getValue();

            //获取user标签下的子标签
            List<Element> elements = userElement.elements();
            for (Element element : elements) {
                String text = element.getText();
                System.out.println(text);
            }
        }

XML文件的约束

XML文件约束:就是限制XML文件只能按某种格式进行书写.

约束文件的分类
  • DTD文档
  • Schema文档

特殊文件的作用

存储多个用户的用户名、密码等.

properties文件和XML文件的区别

properties文件 :一般用于存储用户名和密码等一些简单的键值对数据,不复杂的信息.
XML文件 :比较复杂的信息使用XML文件存储.

相关推荐
奈川直子3 分钟前
EasyExcel自定义动态下拉框(附加业务对象转换功能)
java·mysql·spring·excel
老马啸西风10 分钟前
NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
java
木觞清17 分钟前
Python 图像处理:生成美丽的书籍封面
开发语言·python
风_流沙21 分钟前
parquet文件数据格式介绍以及python pandas对parquet常见操作
开发语言·python·pandas
极客代码31 分钟前
深入理解C语言:编译原理
c语言·开发语言·性能优化·编译原理·代码优化
向宇it40 分钟前
【从零开始入门unity游戏开发之——unity篇05】unity6基础入门——运行游戏按钮、Game游戏窗口和Project项目窗口介绍
开发语言·游戏·unity·c#·游戏引擎
征途黯然.44 分钟前
大模型Agent之CrewAI框架开发指南
开发语言·python
好看资源平台44 分钟前
Java Web开发基础——Java Web项目的结构与组织
java
->yjy1 小时前
[微服务] - MQ高级
java·微服务·架构
大强的博客1 小时前
《Vue3实战教程》42:Vue3TypeScript 与组合式 API
开发语言·javascript·typescript