资讯专栏INFORMATION COLUMN

Properties之使用Properties集合存储数据,遍历,store,load方法

paraller / 1731人阅读

摘要:通过找到值此方法相当于集合中的方法返回此属性列表中的键集,其中该键及其对应值是字符串此方法相当于集合中的方法创建集合对象使用往集合中添加数据赵丽颖迪丽热巴古力娜扎使用把集合中的键取出存储到一个集合中遍历集合取出集合的每一个键使用方法通过获取

package com.itheima.demo07.Prop;

import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

/*

java.util.Properties集合 extends Hashtable implements Map
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。
Properties集合是一个唯一和IO流相结合的集合
    可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用

属性列表中每个键及其对应值都是一个字符串。
    Properties集合是一个双列集合,key和value默认都是字符串

*/
public class Demo01Properties {

public static void main(String[] args) throws IOException {
    show03();
}

/*
    可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
    void load(InputStream inStream)
    void load(Reader reader)
    参数:
        InputStream inStream:字节输入流,不能读取含有中文的键值对
        Reader reader:字符输入流,能读取含有中文的键值对
    使用步骤:
        1.创建Properties集合对象
        2.使用Properties集合对象中的方法load读取保存键值对的文件
        3.遍历Properties集合
    注意:
        1.存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
        2.存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取
        3.存储键值对的文件中,键与值默认都是字符串,不用再加引号
 */
private static void show03() throws IOException {
    //1.创建Properties集合对象
    Properties prop = new Properties();
    //2.使用Properties集合对象中的方法load读取保存键值对的文件
    prop.load(new FileReader("09_IOAndPropertiesprop.txt"));
    //prop.load(new FileInputStream("09_IOAndPropertiesprop.txt"));
    //3.遍历Properties集合
    Set set = prop.stringPropertyNames();
    for (String key : set) {
        String value = prop.getProperty(key);
        System.out.println(key+"="+value);
    }
}

/*
    可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    void store(OutputStream out, String comments)
    void store(Writer writer, String comments)
    参数:
        OutputStream out:字节输出流,不能写入中文
        Writer writer:字符输出流,可以写中文
        String comments:注释,用来解释说明保存的文件是做什么用的
                不能使用中文,会产生乱码,默认是Unicode编码
                一般使用""空字符串

    使用步骤:
        1.创建Properties集合对象,添加数据
        2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
        3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
        4.释放资源
 */
private static void show02() throws IOException {
    //1.创建Properties集合对象,添加数据
    Properties prop = new Properties();
    prop.setProperty("赵丽颖","168");
    prop.setProperty("迪丽热巴","165");
    prop.setProperty("古力娜扎","160");

    //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
    //FileWriter fw = new FileWriter("09_IOAndPropertiesprop.txt");

    //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    //prop.store(fw,"save data");

    //4.释放资源
    //fw.close();

    prop.store(new FileOutputStream("09_IOAndPropertiesprop2.txt"),"");
}

/*
    使用Properties集合存储数据,遍历取出Properties集合中的数据
    Properties集合是一个双列集合,key和value默认都是字符串
    Properties集合有一些操作字符串的特有方法
        Object setProperty(String key, String value) 调用 Hashtable 的方法 put。
        String getProperty(String key) 通过key找到value值,此方法相当于Map集合中的get(key)方法
        Set stringPropertyNames() 返回此属性列表中的键集,其中该键及其对应值是字符串,此方法相当于Map集合中的keySet方法
 */
private static void show01() {
    //创建Properties集合对象
    Properties prop = new Properties();
    //使用setProperty往集合中添加数据
    prop.setProperty("赵丽颖","168");
    prop.setProperty("迪丽热巴","165");
    prop.setProperty("古力娜扎","160");
    //prop.put(1,true);

    //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
    Set set = prop.stringPropertyNames();

    //遍历Set集合,取出Properties集合的每一个键
    for (String key : set) {
        //使用getProperty方法通过key获取value
        String value = prop.getProperty(key);
        System.out.println(key+"="+value);
    }
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76220.html

相关文章

  • 1、Properties集合 2、序列化流与反序列化流 3、打印流 4、commons-IO

    摘要:集合的特点集合的特点类介绍类表示了一个持久的属性集。可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串特点的子类,集合中的方法都可以用。该集合没有泛型。键值可以存储到集合中,也可以存储到持久化的设备硬盘盘光盘上。 01Properties集合的特点 * A: Properties集合的特点 * a: Properties类介绍 * Propert...

    aboutU 评论0 收藏0
  • 服务端预渲染Nuxt - (爬坑篇)

    摘要:根据官方文档在文件下面创建两个文件,分别是和。在中可以直接使用,并且是默认启用命名空间的。在中触发热更新。使用中间件中间件没有给出具体的使用文档,而是放入了一个编辑器。对配置有兴趣的可以在官方文档找到渲染文档。 Nuxt是解决SEO的比较常用的解决方案,随着Nuxt也有很多坑,每当突破一个小技术点的时候,都有很大的成就感,在这段时间里着实让我痛并快乐着。在这里根据个人学习情况,所踩过的...

    cucumber 评论0 收藏0
  • Java编程基础23——IO(其他流)&Properties

    摘要:但它融合了和的功能。支持对随机访问文件的读取和写入。的概述和作为集合的使用了解的概述类表示了一个持久的属性集。可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 1_序列流(了解) 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个: S...

    vvpale 评论0 收藏0
  • dubbo源码解析(三)注册中心——开篇

    摘要:是用来监听处理注册数据变更的事件。这里的是节点的接口,里面协定了关于节点的一些操作方法,我们可以来看看源代码获得节点地址判断节点是否可用销毁节点三这个接口是注册中心的工厂接口,用来返回注册中心的对象。 注册中心——开篇 目标:解释注册中心在dubbo框架中作用,dubbo-registry-api源码解读 注册中心是什么? 服务治理框架中可以大致分为服务通信和服务管理两个部分,服务管理...

    CastlePeaK 评论0 收藏0
  • 源码解读 Spring Boot Profiles

    摘要:有了配置文件之后,启动程序,我们首先可以看到日志输入,由此可以看出程序读取了的配置。首先,根据的全局查找功能,直接搜索这些词出现的位置,进行定位,可以找到这个日志出现于方法之中。由于我们的配置文件在下,所以只要留意当为的程序执行情况即可。 前言 上文《一文掌握 Spring Boot Profiles》 是对 Spring Boot Profiles 的介绍和使用,因此本文将从源码角度...

    Dionysus_go 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<