package com.yang.Test.PropertiesStudy;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set; /**
* java.util.Properties集合 extends Hashtable<k,y> implements Map<k,y>
* Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。
* Properties集合是一个唯一和IO流相结合的集合
* 可以使用Properties集合中的store,把集合中的临时数据,持久化写入到硬盘中存储
* 可以使用Properties集合中的方法load,吧硬盘中保存的文件(键值对),读取到集合中使用
* 属性列表中每个键及其对应值都是一个字符串。
* Properties集合是一个双列集合,key和value默认都是字符串
*/
public class demo01 {
public static void main(String[] args) throws IOException {
show2();
} /**
* 使用Properties集合存储数据遍历取出Properties集合中的数据
* Properties集合是一个双列集合,key和value默认都是字符串
* Properties集合有一些操作字符串的特有方法
* Object setProperty(String key, String value)调用Hashtable的方法put
* String getProperty(String key)通过key找到value值,此方法相当于Map集合中的get(key)方法
* Set<String> stringPropertyNames()返回此属性列表中的链表,其中该键及其对应值是字符串,此方法相当于Map集合中的keySet方法
*/
private static void show1() {
//创建Properties对象
Properties prop = new Properties();
//调用setProperty往集合中添加数据
prop.setProperty("赵丽颖","168");
prop.setProperty("迪丽热巴","165");
prop.setProperty("古力娜扎","160"); //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
Set<String> set = prop.stringPropertyNames(); //遍历Set集合,取出Properties集合的每一个键
set.forEach(key -> {
//使用getProperty方法根据key获取value
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 show2() throws IOException {
Properties prop = new Properties();
prop.setProperty("赵丽颖","168");
prop.setProperty("迪丽热巴","165");
prop.setProperty("古力娜扎","160"); FileWriter fw = new FileWriter("Document\\1.txt");
prop.store(fw,"save data"); fw.close();
}
}

Load

```java
package com.yang.Test.PropertiesStudy; import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set; /**
* 可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用
* void load(InputStream inStream);
* void load(Reader reader);
* 参数:
* InputStream inStream:字节输入流,不能读取含有中文的键值对
* Reader reader;字符输入流,能读取含有中文的键值对
* 使用步骤:
* 1.创建Properties集合对象
* 2.使用Properties集合对象中的方法Load读取保存键值对的文件
* 3.遍历Properties集合
* 注意:
* 1.存储键值对的文件中,键和值默认的连接符号可以使用=,空格(其他符号)
* 2.存储键值对的文件中,键和值默认都是字符串,不用再加引号
*/
public class PropertiesStudy02 {
public static void main(String[] args) throws IOException {
//1.创建Properties集合对象
Properties prop = new Properties();
//2.使用Properties集合对象中的方法Load读取保存键值对的文件
prop.load(new FileReader("Document\\1.txt"));
//3.遍历Properties集合
Set<String> set = prop.stringPropertyNames();
set.forEach(key -> {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
});
}
}

使用Properties集合存储数据,遍历取出Properties集合中的数据和Properties集合中的方法store和load的更多相关文章

  1. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_1_使用Properties集合存储数据,遍历取出集合中的数据

    map下面的实现类叫做Hashtable Properties是唯一和IO流相结合的 讲解 代码

  2. java的缓冲流及使用Properties集合存取数据(遍历,store,load)

    缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是 ...

  3. map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法

    package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  4. Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

    Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的ke ...

  5. Properties集合中的方法store和Properties集合中的方法load

    Properties集合中的方法store public class Demo01Properties { public static void main(String[] args) throws ...

  6. Java持久化存储对象Properties的方法list、store、load

    package FileDemo; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStrea ...

  7. Java学习:Set接口与HashSet集合存储数据的结构(哈希表)

    Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...

  8. Java基础知识强化之IO流笔记45:IO流练习之 把集合中的数据存储到文本文件案例

    1. 把集合中的数据存储到文本文件案例:    需求:把ArrayList集合中的字符串数据存储到文本文件 ? (1)分析:通过题目的意思我们可以知道如下的一些内容,ArrayList集合里存储的是字 ...

  9. 使用传统的方式遍历集合对集合中的数据进行过滤和使用Stream流的方式遍历集合对集合中的数据进行过滤

    使用传统的方式,遍历集合,对集合中的数据进行过滤 class Test{ public static void main(String[] args){ ArrayList<String> ...

随机推荐

  1. 不要使用Java Executors 提供的默认线程池

    线程池构造方法 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUni ...

  2. Ruby 趣学笔记(一)

    Ruby 趣学笔记(一) 本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量 ...

  3. leetcode 3. Longest Substring Without Repeating Characters 无重复字符的最长子串

    一.题目大意 https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 给定一个字符串 s ,请你找出其 ...

  4. 200 行代码实现基于 Paxos 的 KV 存储

    前言 写完[paxos 的直观解释]之后,网友都说疗效甚好,但是也会对这篇教程中一些环节提出疑问(有疑问说明真的看懂了 ),例如怎么把只能确定一个值的 paxos 应用到实际场景中. 既然 Talk ...

  5. 脚踏实地的Netty源码研究笔记——开篇

    1. 脚踏实地的Netty源码研究笔记--开篇 1.1. Netty介绍 Netty是一个老牌的高性能网络框架.在众多开源框架中都有它的身影,比如:grpc.dubbo.seata等. 里面有着非常多 ...

  6. [C++STL] vector 容器的入门

    vector容器的入门 #include<vector> 创建vector容器的几种方式 数据类型可以是结构体,也能是另外一个容器 vector 的初始化: (1) 创建并声明大小 vec ...

  7. .NET性能优化-推荐使用Collections.Pooled

    简介 性能优化就是如何在保证处理相同数量的请求情况下占用更少的资源,而这个资源一般就是CPU或者内存,当然还有操作系统IO句柄.网络流量.磁盘占用等等.但是绝大多数时候,我们就是在降低CPU和内存的占 ...

  8. PostgreSQL 和 MySQL 在用途、好处、特性和特点上的异同

    PostgreSQL 和 MySQL 在用途.好处.特性和特点上的异同. PostgreSQL 和 MySQL 是将数据组织成表的关系数据库.这些表可以根据每个表共有的数据链接或关联.关系数据库使您的 ...

  9. C++ 智能指针浅析

    C++ 智能指针浅析 为了解决 C++ 中内存管理这个老大难问题,C++ 11 中提供了三种可用的智能指针.(早期标准库中还存在一种 auto_ptr,但由于设计上的缺陷,已经被 unique_ptr ...

  10. Wireshark学习笔记(一)常用功能案例和技巧

    @ 目录 常用功能 1.统计->捕获属性 2.统计->协议分级 3.过滤包Apply as filter E1:过滤出特定序号的包 E2:过滤出某IP地址或端口 E3:导出php文件 E4 ...