Loading... > java.util.HashTable<K, V>:底层是哈希表。键和值都不能为null。同步(单线程,线程安全)。 # 1、子类Properties jave.util.Properties:唯一一个和IO流结合的集合。表示了一个持久的属性集。`Properties` 可保存在流中或从流中加载。使用键值结构存储数据,每个键及其 对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时, System.getProperties 方法就是返回 一个 Properties 对象。 【注意】:文本中的数据,必须是键值对形式,可以使用空格、等号、冒号等符号分隔。 ## 1.1、构造方法 `public Properties()` :创建一个空的属性列表。 ## 1.2、成员方法 * 基本成员方法 `public Object setProperty(String key, String name)` :保存一对属性。 `public String getProperty(String key)` :使用此属性列表中指定的键搜索属性值。 `public Set<String> stringPropertyNames()` :所有键的名称的集合。 * 与IO流相关的成员方法 `public void load(InputStream inStream)` :从字节输入流中读取键值对。不能读中文。 `public void load(Reader reader)` :从字符输入流中读取键值对。可以读中文。 `public void store(OutputStream out, String comments)` :向字节输出流中写出键值对。不能写中文。注释不能使用中文,Unicode编码。 `public void store(Writer writer, String comments)` :向字符输出流中写出键值对。可以写中文。注释不能使用中文,Unicode编码。 # 2、使用store方法 <div class="tip inlineBlock info"> 使用步骤: </div> 1. 创建Properties集合对象,添加数据 2. 创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地 3. 使用Properties集合中的方法store,把集合中的临时数据写入到硬盘中储存 4. 释放资源 ```java package IO流; import java.io.*; import java.util.*; public class demo05Properties { public static void main(String[] args) throws IOException { // 1.创建Properties集合对象,添加数据 Properties properties = new Properties(); properties.setProperty("迪丽热巴","168"); properties.setProperty("古力娜扎","165"); properties.setProperty("马儿扎哈","160"); // 2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地 FileWriter fw = new FileWriter("src//IO流//a.txt"); // 3.使用Properties集合中的方法store,把集合中的临时数据写入到硬盘中储存 properties.store(fw, "save data"); // 4.释放资源 fw.close(); } } ``` <div class="tip inlineBlock info"> 运行结果: </div> <div class='album_block'> [album type="photos"] ![](https://blog.fivk.cn/usr/uploads/2021/11/1146829568.png) ![](https://blog.fivk.cn/usr/uploads/2021/11/3235131176.png) [/album] </div> # 3、使用load方法 `void load(InputStream inStream)` 从输入流中读取属性列表(键和元素对)。 `void load(Reader reader)` 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 <div class="tip inlineBlock info"> 参数: </div> InputStream inStream : 字节输入流,不能读取含有中文的键值对 Reader reader : 字符输入流,能读取含有中文的键值对 <div class="tip inlineBlock info"> 使用步骤: </div> 1. 创建Properties集合对象 2. 使用Properties集合对象中的方法load读取保存键值对的文件 3. 遍历Properties对象 <div class="tip inlineBlock info"> 注意: </div> 1. 储存键值对的文本中,键与值默认的连接符号可以使用 = 、空格 (其他符号) 2. 存储键值对的文本中,可以使用#进行注释,被注释的键值对不会再被读取。 3. 储存键值对的文本中,键与默认值都是字符串,不用再加上引号 ```java package IO流; import java.io.*; import java.util.Properties; import java.util.Set; public class Demo01PropertiesLoad { public static void main(String[] args) throws IOException { // 1.创建Properties集合对象 Properties properties = new Properties(); // 2.使用Properties集合对象中的方法load读取保存键值对的文件 properties.load(new FileReader("src//IO流//a.txt")); // 3.遍历Properties对象 Set<String> set = properties.stringPropertyNames(); for (String key : set) { String value = properties.getProperty(key); System.out.println(key + " = " + value); } } } ``` > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 11 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏