Properties

一.Properties集合

1.Properties集合的特点

  • Properties类介绍:Properties 类表示了一个持久的属性集。Properties
    可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
  • 特点
    • Hashtable的子类,map集合中的方法都可以用
    • 该集合没有泛型。键值都是字符串
    • 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
      有和流技术相结合的方法
  • 方法介绍
    load(InputStream inputStream)把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
    load(Reader reader)按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)
    store(OutputStream outputStream,String commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
    stroe(Writer writer,String comments)以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符

2.Properties集合存储键值对

  • Properties集合存储键值对方法介绍
  • 集合对象Properties类,继承Hashtable,实现Map接口
  • 可以和IO对象结合使用,实现数据的持久存储
  • 使用Properties集合,存储键值对
  • setProperty等同与Map接口中的put
  • setProperty(String key, String value)
  • 通过键获取值, getProperty(String key)
  Properties pro=new Properties();
      pro.setProperty("1","黄");
      pro.setProperty("2","志");
      pro.setProperty("3","桃");
      //方法stringPropertyNames,将集合中的键存储到Set集合,类似于Map接口的方法keySet
      Set<String> set = pro.stringPropertyNames();
      for (String key : set) {
          System.out.println(pro.getProperty(key));
      }

3.Properties集合的方法load

  • Properties集合的方法load方法介绍
    • Properties集合特有方法 load
    • load(InputStream in)
    • load(Reader r)
    • 传递任意的字节或者字符输入流
    • 流对象读取文件中的键值对,保存到集合
  • 实例代码(读取jdbc.properties文件)
    在这里插入图片描述
        Properties p=new Properties();
        //使用字节文件操作流
        InputStream  is=new FileInputStream("D:\\hzt\\mess\\properties\\src\\jdbc.properties");//绝对地址
        //使用字节缓冲缓冲流
     //   InputStream is=new BufferedInputStream(new FileInputStream("src/jdbc.properties"));//相对地址
       p.load(is);
        System.out.println(p.getProperty("jdbc.username"));
        p.list(System.out);

通过类加载器获取文件

      Properties p=new Properties();
    InputStream is = GetProperties.class.getClassLoader().getResourceAsStream("jdbc.properties");  //GetProperties为当前类名,静态方法中不能使用this
       p.load(is);
        System.out.println(p.getProperty("jdbc.username"));
        p.list(System.out);

4.Properties集合的方法store

  • Properties集合的方法store介绍
    • Properties集合的特有方法store
    • store(OutputStream out)
    • store(Writer w)
    • 接收所有的字节或者字符的输出流,将集合中的键值对,写回文件中保存
  • 实例代码
    1. 普通写入,中文时乱码
	 Properties pro=new Properties();
        InputStream is = Store.class.getClassLoader().getResourceAsStream("jdbc.properties");
        pro.load(is);
        pro.setProperty("name","黄志桃");
        pro.setProperty("sex","男");
        OutputStream out=new FileOutputStream("src/jdbc.properties");
        pro.store(out,"填充数据");
        out.close();

在这里插入图片描述
2.处理乱码
加以下代码即可

OutputStreamWriter osw=new OutputStreamWriter(out,"UTF-8");

5 . 加载和导出到 xml 配置文件

将Properties 类中定义的属性,导出成 .xml 的形式.

Properties pro=new Properties();
        pro.setProperty("name","黄志桃");
        pro.setProperty("sex","男");
        OutputStream output=new FileOutputStream("src/jdbc.xml");
        //编码设置成utf-8的形式。
        pro.storeToXML(output,"填充到xml","utf-8");

在这里插入图片描述
导出XML 配置文件 loadFromXML

  Properties pro=new Properties();
      InputStream is = Store.class.getClassLoader().getResourceAsStream("jdbc.xml");
      pro.loadFromXML(is);
      pro.list(System.out);

在这里插入图片描述

注:this.class.getClassLoader().getResourceAsStream(url);是从编译后的文件中获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值