Properties集合和IO流的结合使用

** 1、Properties简介:**

  • java.util.Properties集合 extends HashTable<k,V> implements Map<k,v>
  •  Properties 类表示了一个持久的属性集。Properties可保存在流中或从流中加载。
    
  •  Properties集合是一个唯一和IO流相结合的集合
    
  •  可以使用Propeerties集合中的方法store,把集合中的历史数据,持久化到硬盘中,
    
  •  也可以使用Properties集合中的方法load,把硬盘中的文件中的数据(<k,v>)读取到集合中使用
    
  • 属性列表中的每个键及其对应值都是一个字符串。
  • Properties集合是一个双列集合,key和value默认都是字符串

** 2、使用Properties存储数据,**

  • Properties集合中特有的处理数据的方法;
  • Object setProperty(String key,String value) : 设置数据,默认键 值都是字符串类型相当于Map集合中的put方法;
  • String getProperty(String key) : 通过key获取集合中的值,键和键对应的值都是字符串类型,相当于Map集合中的get方法
  • Set stringPropertyNames() : 获取集合中的所有键的集,相当于Map集合中的keySet方法

代码实现:

 //创建Properties结合
        Properties p = new Properties();
        //添加数据
        p.setProperty("刘女士","25岁");
        p.setProperty("张先生","37岁");
        p.setProperty("王小姐","21岁");
        p.setProperty("古先生","20岁");
        p.setProperty("钱大叔","50岁");

        //获取集合的键的集
        Set<String> set = p.stringPropertyNames();

        //遍历获取键对应的value值
        for ( String s: set) {
            System.out.println(s + " 今年 "+ p.getProperty(s));
        }
  • 3、使用字节/字符流对象和Properties集合,持久化数据到磁盘文件中
  • 1、创建一个Properties集合并添加数据;
  • 2、创建一个字节/字符流输出对象,指定输出到的文件;
  • 3、Properties调用store(… , …)方法,将字节流/字符流对象作为参数传进去;
  • 4、释放资源。

Propertis集合数据持久化存储代码实现:

//使用store方法将集合中的数据持久化到磁盘文件中
//FileOutputStream只能写入字节,一般含有中文的不使用此输出流
//FileOutputStream os = new FileOutputStream("MyBatis01\\Properties.properties");
FileWriter fw = new FileWriter("MyBatis01\\Properties.properties");
p.store(fw,"save Properties");
//释放资源
fw.close();

 * #save Properties
 * 古先生=20岁
 * 张先生=37岁
 * 王小姐=21岁
 * 钱大叔=50岁
 * 刘女士=25岁
  • 4、Properties集合读取文件中的键值对数据:
  • 调用的方法:load(InputStream inStream) 字节文件输入流读取
  • load(Reader reader) 字符文件输入流读取
  • 实现步骤:
  • 1、创建Properties对象;
  • 2、创建文件字节/字符输入流对象,并制定读取的目的文件
  • 3、Properties对象调用load(…)方法,将创建的字节/字符输入流对象作为参数传递,读取文件中的数据到Properties集合中;
  • 4、释放资源。
  • 文件读取的注意事项:
  • 1、存储键值对的文件中,键与值之间的链接符号一般是 = ,空格,(也可以使用其他符号);
  • 2、存储键值对的文件中,可以使用# 对数据进行注释,备注的数据在读取时会忽略,不读取;
  • 3、存储键值对的文件中,键和值默认都是字符串类型,不用特别加引号

数据读取到Properties集合中代码实现:

//读取properties.properties文件中的数据到Properties集合中
Properties pp = new Properties();
FileReader fr = new FileReader("MyBatis01\\Properties.properties");
pp.load(fr);  //读取文件
fr.close();  //释放资源
//遍历读取到集合中的数据
Set<String> s = pp.stringPropertyNames();
for (String str: s) {
    System.out.println(str +" 今年 "+pp.getProperty(str));
}

 * 注释古先生的数据之后读取的结果:
 * 
 * 张先生 今年 37岁
 * 王小姐 今年 21岁
 * 钱大叔 今年 50岁
 * 刘女士 今年 25岁
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值