一、概述

  java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>

  java.util.Properties 继承与 Hashtable,来表示一个持久的属性集。

  Properties 可保存在流中或从流中加载,Properties集合是一个唯一和IO流相结合的集合。

  它使用键值结构存储数据,属性列表中每个键及其对应值都是一个字符串。Properties集合是一个双列集合,key和value默认都是字符串

二、Properties 类

  1、构造方法

public Properties() :创建一个空的属性列表

  2、基本的存储方法

public Object setProperty(String key, String value) : 保存一对属性。
public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。
public Set<String> stringPropertyNames() :所有键的名称的集合,其中该键及其对应值是字符串。

  Demo:

  public static void main(String[] args) throws IOException {
//创建Properties集合对象
Properties prop = new Properties();
//使用setProperty往集合中添加数据,都是字符串
prop.setProperty("张三","16");
prop.setProperty("李四","17");
prop.setProperty("王五","18");
//prop.put(1,true); //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
Set<String> set = prop.stringPropertyNames(); //遍历Set集合,取出Properties集合的每一个键
for (String key : set) {
//使用getProperty方法通过key获取value
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}

  3、与流相关的方法

    (1)使用 store 方法,存储数据

      使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储

void store(OutputStream out, String comments)
void store(Writer writer, String comments)

        参数

        OutputStream out:字节输出流,不能写入中文

        Writer writer:字符输出流,可以写中文

        String comments:注释,用来解释说明保存的文件是做什么的,不能使用中文,会产生乱码,默认是 Unicode编码,一般使用“” 空字符串。

      使用步骤

        ① 创建 Properties 对象,添加数据

        ② 创建字节输出流 / 字符输出流对象,构造方法中绑定要输出的目的地。

        ③ 使用 Properties 集合中的方法 store,把集合中的临时数据,持久化写入到硬盘中存储

        ④ 释放资源。

      Demo:

 public static void main(String[] args) throws IOException {
//1.创建Properties集合对象,添加数据
Properties prop = new Properties();
prop.setProperty("张三","16");
prop.setProperty("李四","17");
prop.setProperty("王五","18"); //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
FileWriter fw = new FileWriter("E:\\prop.txt"); //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
prop.store(fw,"save data"); //4.释放资源
fw.close(); //prop.store(new FileOutputStream("E:\\prop2.txt"),""); // 写入中文后乱码
}

    (2)使用 load 方法,读取数据

      使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用

 void load(InputStream inStream)
void load(Reader reader)

      参数

        InputStream inStream:字节输入流,不能读取含有中文的键值对

        Reader reader:字符输入流,能读取含有中文的键值对

       使用步骤

        ① 创建 Properties 集合对象

        ② 使用Properties集合对象中的方法load读取保存键值对的文件

        ③ 遍历Properties集合

       注意

        ① 存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)

        ② 存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取

        ③ 存储键值对的文件中,键与值默认都是字符串,不用再加引号

       Demo:

 public static void main(String[] args) throws IOException {
//1.创建Properties集合对象
Properties prop = new Properties();
//2.使用Properties集合对象中的方法load读取保存键值对的文件
prop.load(new FileReader("E:\\prop.txt"));
//prop.load(new FileInputStream("E:\\prop.txt")); 获取乱码
//3.遍历Properties集合
Set<String> set = prop.stringPropertyNames();
for (String key : set) {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}

Java 之 Properties类 属性集的更多相关文章

  1. Java的Properties类和读取.properties文件

    一..properties文件的作用 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必 ...

  2. Java中Properties类的学习总结

    学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 一.认识prope ...

  3. 使用java.util.Properties类读写配置文件

    J2SE 1.5 以前的版本要求直接使用 XML 解析器来装载配置文件并存储设置,虽说也并非难事,相比 java.util.Properties却要做额外的解析工作.而java.util.Proper ...

  4. Java中Properties类

    1 简介: JDK提供的java.util.Properties类继承自Hashtable类并且实现了Map接口,用map来存储key-value数据,所以存入的数据是无序的.其中键和值都是字符串类型 ...

  5. java.util.Properties类 学习笔记

    学习目标:   1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 3.掌握相对路 ...

  6. 【Java基础】Java中的持久属性集Properties

    Properties 类的介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串.一个属性列表可包含另一个属性列 ...

  7. java中Properties类及读取properties中属性值

    本文为博主原创,未经允许不得转载: 在项目的应用中,经常将一些配置放入properties文件中,在代码应用中读取properties文件,就需要专门的类Properties类,通过这个类可以进行读取 ...

  8. 关于Java的Properties类

    Properties类 先来学习下Properties类吧. Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. ...

  9. Java中Properties类知识的总结

    一.Properties类与配置文件 注意:是一个Map集合,该集合中的键值对都是字符串.该集合通常用于对键值对形式的配置文件进行操作. 配置文件:将软件中可变的部分数据可以定义到一个文件中,方便以后 ...

随机推荐

  1. vue plupload 的使用

    1.  首选npm安装plupload 2. 阿里云OSS PHP 安全上传 <template> <div class="imgUpload"> aaa ...

  2. Flutter TextField详解

    原文地址:https://www.jianshu.com/p/54419a143d70 实现TextField说简单也简单,说有坑,坑也不小,下面从易到难介绍一下使用 1.最简单的就是无参数调用构造方 ...

  3. 泡泡一分钟:Perception-aware Receding Horizon Navigation for MAVs

    作为在空中抛掷四旋翼飞行器后恢复的第一步,它需要检测它使用其加速度计的发射.理想的情况下,在飞行中,加速度计理想地仅测量由于施加的转子推力引起的加速度,即.因此,当四旋翼飞行器发射时,我们可以检测到测 ...

  4. getField和getDeclaredField的区别

    这两个方法都是用于获取字段getField 只能获取public的,包括从父类继承来的字段.getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段. ...

  5. Python - Django - 组件

    网站中通常会有一个导航条,如下图 这个导航条在很多页面都会存在 可以把导航条做成一个组件,让要显示导航条的网页包含 导航条组件 nav.html: <h1>假装这是一个导航条</h1 ...

  6. redis cluster环境搭建

    环境搭建 http://blog.51cto.com/zhoushouby/1560400 http://hot66hot.iteye.com/blog/2050676 ruby环境安装---ruby ...

  7. 未找到路径“ ”的控制器或该控制器未实现 IController。

    未找到路径“/Platform/t_spay_sub_mchno/Index”的控制器或该控制器未实现 IController. 从SVN复制了份代码修改,然后找不到控制器和页面.在项目属性-WEB- ...

  8. Docker从容器内拷贝文件到主机上

    //以elasticsearch容器为例 //运行es docker run -d -p 9200:9200 elasticsearch:5.4 //查看已运行的容器 docker ps //进去容器 ...

  9. 深入css过渡transition

    通过过渡transition,可以让web前端开发人员不需要javascript就可以实现简单的动画交互效果.过渡属性看似简单,但实际上它有很多需要注意的细节和容易混淆的地方. 过渡transitio ...

  10. linux下源码安装rabbitMq

    一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...