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文件存储.

相关推荐
云深麋鹿1 小时前
数据链路层总结
java·网络
fire-flyer1 小时前
响应式客户端 WebClient详解
java·spring·reactor
Pocker_Spades_A1 小时前
Python快速入门专业版(二十六):Python函数基础:定义、调用与返回值(Hello函数案例)
开发语言·python
北执南念1 小时前
基于 Spring 的策略模式框架,用于根据不同的类的标识获取对应的处理器实例
java·spring·策略模式
王道长服务器 | 亚马逊云1 小时前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws
island13141 小时前
【C++框架#5】Elasticsearch 安装和使用
开发语言·c++·elasticsearch
华仔啊2 小时前
为什么 keySet() 是 HashMap 遍历的雷区?90% 的人踩过
java·后端
9号达人2 小时前
Java 13 新特性详解与实践
java·后端·面试
橙序员小站2 小时前
搞定系统设计题:如何设计一个支付系统?
java·后端·面试
周周记笔记2 小时前
学习笔记:Python的起源
开发语言·python