Properties类与IO流

1.概念

Properties是Map的子类,是一个双列集合,键和值都是字符串类型。Map集合的方法它都能使用;
但是推荐是Properties自己特有的方法,对集合进行操作。

2.特有方法
//properties属于Map集合【该集合一般添加字符串键值对】
//特有方法[名字不同,但是用法一样,区别是参数类型不同]
public class Demo1 {
    public static void main(String[] args) {
        Properties pro = new Properties();
        //setProperty()添加键值对[如果键重复,就覆盖值]类似于put方法
        pro.setProperty("zhangsan", "武汉");
        pro.setProperty("lisi", "河南");
        pro.setProperty("wangwu", "孝感");
        //pro.getProperty,根据键获取值类似于get方法
        System.out.println(pro.getProperty("lisi"));
        //pro.stringPropertyNames(),获取所有的键的集合类似于keySet
        Set<String> keys = pro.stringPropertyNames();
        for (String key : keys) {
            String value = pro.getProperty(key);
            System.out.println(key + "..." + value);
        }
    }
}

打印结果:
--------------------------------------------------------------------------------------------
河南
lisi...河南
zhangsan...武汉
wangwu...孝感
3.properties与IO流相关的两个方法
//properties与IO流相关的两个方法【一般以配置文件使用,加#则表示注释】
public class Demo2 {
    public static void main(String[] args) throws IOException {
        Properties pro = new Properties();
        //load() 将本地文件的键值对数据读取到集合中
        FileReader fr = new FileReader("day12_myIoOtherStream\\src\\com\\itheima\\properties\\config.properties");
        pro.load(fr);
        fr.close();
        System.out.println(pro);
        //store() 将集合中的数据以键值对的形式保存到文件中
        pro.setProperty("wangmazi","25");
        FileWriter fw = new FileWriter("day12_myIoOtherStream\\src\\com\\itheima\\properties\\config.properties");
        pro.store(fw,"student");//第二个参数为注释【不支持中文】
        fw.close();
    }
}

打印结果:【count=2为文件原有的内容】
--------------------------------------------------------------------------------------------
config.properties:#student
                   #Fri Jul 09 20:48:58 CST 2021
                   count=2
                   wangmazi=25
                   
控制台:{count=2}
4.properties与IO流相关的方法应用
//配置文件要求:
//后缀以.properties结尾,内容格式:键=值,一个键值对独占一行
import java.io.*;
import java.util.Properties;

//配置文件剩余次数
public class Demo3 {
    public static void main(String[] args) throws IOException {
          //1.创建集合存储
        Properties pro = new Properties();
        //2.创建流对象并指定文件
        FileReader br = new FileReader("day12_myIoOtherStream\\src\\com\\itheima\\properties\\config.properties");
        //3.调用集合load方法读取文件并得到键值对
        pro.load(br);
        br.close();
        //4.调用集合getProperty得到键对应的值
        String value = pro.getProperty("count");
        //判断值的大小
        //对字符串转化为整形再比较
        int number = Integer.parseInt(value);
        if(number>0){
            System.out.println("感谢你的使用,你的机会还次数"+(number-1)+"次");
            //使用一次则重新设置键对应的值-1
            pro.setProperty("count",(number-1)+"");
            FileWriter bw = new FileWriter("day12_myIoOtherStream\\src\\com\\itheima\\properties\\config.properties");
            pro.store(bw,null);
            bw.close();
        }else {
            System.out.println("你的次数用完了,请开通会员继续使用");
        }
    }
}

打印结果:【count=2为文件原有的内容】
--------------------------------------------------------------------------------------------
config.properties:#Fri Jul 09 20:53:17 CST 2021
                   count=1
                   wangmazi=25
                   
控制台:感谢你的使用,你的机会还次数1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪雨岁岁年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值