properties属性文件

本文详细介绍了特殊文件中的三种类型(普通文件、属性文件和XML文件),重点阐述了属性文件的特性和使用Properties类在Java中读写.properties文件的过程,包括load()和store()方法,以及如何通过Map接口操作和利用IO流连接文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.特殊文件

(1)普通文件:以.txt结尾的文件,对文件数据格式没有要求。

(2)属性文件:存储的数据以且只以键值对的形式存储,用=连接,如jack=20。一般使用.properties后缀

(3)XML文件:存储的数据是使用xml语言编写的。

二.属性文件

1.属性文件的特点

(1)数据全由键值对构成。

(2)键不能重复。

(3)文件后缀一般为.properties。

只要数据都只由键值对形式构成的文件都可以叫属性文件,使用.properties后缀是为了标识该文件是属性文件。

2.Properties类

Properties类是Java中一个Map接口的实现类,专门用于读写.properties文件。

Properties对象实质是一个Map集合,但我们一般不把Properties当集合使用,而是通过Properties对象来操作,properties文件。

3.通过Properties读取.properties文件的数据

(1)先创建一个Properties对象

Properties pro = new Properties();

该对象可以看作是待操作的.properties文件的实例化。

(2)使用load()方法加载输入流

pro.load(InputStream is):通过字节输入流读取属性文件数据,is是待操作的.properties文件的输入流。

pro.load(Reader reader):通过字符输入流读取属性文件数据,reader是待操作的.properties文件的输入流。键值对以字符存储,一般使用字符输入流读取。

pro.load(new FileReader("D:\\java\\idea\\AllProjects\\demo1\\src\\main\\java\\PropertiesAndXml\\User.properties"));

(3)接下来就是使用Properties类提供的方法读取.properties文件。

属性文件:

Jack = 18
Tom = 19
Paul = 20
小明 = 18
小刚 = 19
小王 = 20

.stringPropertyNames()方法返回一个包含所有键名的集合

.getProperty(String key):根据键key返回对应的值value,返回值为String

        //stringPropertyNames()返回一个包含属性文件中所有键名构成的集合
        Set<String> keys = pro.stringPropertyNames();
        //打印键名
        for (String key : keys) {
            System.out.println(key+"="+pro.getProperty(key));
        }

4.通过Properties将数据写入.properties文件

(1)同样地,先创建Properties对象

Properties pro = new Properties();

 (2)将要存入文件的键值对先存入Properties对象中。

.setProperty(String key,String value):保存键值对数据到Properties中,该方法返回值为Object。若Properties对象中已保存了键key,则替换旧value,并返回该旧value。若属性文件没有键key,则存入,并返回null。

        pro.setProperty("小芳","20");
        pro.setProperty("小美","20");

(3)最后将Properties对象的键值对存入属性文件中。

pro.store(OutputStream os,String comments):将pro对象中所有的键值对通过输出流写入到属性文件中,comments为要注释的信息
pro.store(Writer w,String comments):将pro对象中所有的键值对通过字符流写入到属性文件中。

                pro.store(new FileWriter("D:\\java\\idea\\AllProjects\\demo1\\src\\main\\java\\PropertiesAndXml\\User.properties"),
                "添加信息"
                );

执行完之后再打开属性文件,就能发现写入了新的键值对,且以注释的方式添加了注释信息和写入时间。

5.使用

(1)Properties对象是一个Map接口实现类,因此Map的接口方法Properties对象也能使用。如containsKey()等。

(2).properties文件与Properties对象是通过输入输出流连接的,通过load()方法为Properties对象加载.properties文件的输入流读取文件,通过store()方法为Properties对象加载.properties文件的输出流写入文件。Java通过Properties对象来操作.properties文件,Properties对象又是通过IO流来连接.properties文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值