Properties集合定义与用法详解
时间:2026-08-18 | 作者:星际追番人 | 阅读:0Hashtable与Properties的关系
Map接口还有一个实现类叫Hashtable,它和HashMap整体上很像,但有个关键差别:Hashtable是线程安全的。
也正因为如此,在日常使用里,它的执行效率通常不如HashMap,所以现在大多数场景下,Hashtable基本已经被HashMap取代。
不过,Hashtable并不是完全没有存在感,它有一个很重要的子类——Properties。
Properties主要用于保存字符串类型的键和值。在实际开发中,应用配置项的读写和管理,常常就会用到这个集合类。
Properties的典型使用场景
假设有一个文本编辑工具,要求默认背景色是红色,字体大小为14px,语言为中文。
这些要求就可以使用Properties集合类对应的properties文件进行配置,效果如文件1所示(假设配置文件的文件名为test.properties)。
文件1 test.properties
1 Backgroup-color = red
2 Font-size = 14px
3 language = chinese
Properties配置文件的读取与写入
接下来,就通过一个案例来学习Properties集合类如何对properties配置文件进行读取和写入操作。
这里假设test.Properties配置文件在项目的根目录下,如文件2所示。
文件2 Example22.ja va
1 import ja va.io.FileInputStream;
2 import ja va.io.FileOutputStream;
3 import ja va.util.Properties;
4 public class Example22 {
5 public static void main(String[] args) throws Exception {
6 // 1、通过Properties进行属性文件读取操作
7 Properties pps = new Properties();
8 // 加载要读取的文件test.properties
9 pps.load(new FileInputStream("test.properties"));
10 // 遍历test.properties键值对元素信息
11 pps.forEach((k, v) -> System.out.println(k + "=" + v));
12 // 2、通过Properties进行属性文件写入操作
13 // 指定要写入操作的文件名称和位置
14 FileOutputStream out = new FileOutputStream("test.properties");
15 // 向Properties类文件进行写入键值对信息
16 pps.setProperty("charset", "UTF-8");
17 // 将此 Properties集合中新增键值对信息写入配置文件
18 pps.store(out, "新增charset编码");
19 }
20 }
这段代码完成了什么
- 先读取 test.properties 配置文件内容
- 再遍历输出 文件中的键值对信息
- 最后写入 一个新的配置项 charset=UTF-8
运行结果如图1所示。
图1 运行结果
执行完文件1程序后,刷新并查看原有的test.properties配置文件中的内容,如图2所示。
图2 test.properties配置文件内容
案例过程解析
在文件1里,先创建了一个Properties集合对象。
随后通过IO流读取test.properties配置文件中的内容,并逐项遍历,完成了基于Properties集合读取properties配置文件的整个过程。
紧接着,仍然是通过IO流明确写入的文件路径和文件名,再借助Properties的setProperty()方法新增一个键值对。
最后通过store()方法把这部分新增内容写回到properties配置文件中。
也就是说,这里涉及到的test.properties配置文件,本质上是依靠IO流来完成读写操作的。
至于IO流本身的相关知识,下一章会展开详细说明。
这里先知道它的用法就够了,不必过早钻得太深。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 打破多年惯例!小米18缺席9月发布会 卢伟冰:不会让大家等太久
- 时间:2026-08-25
-
- C# 里字段(Field)和属性(Property)到底怎么区分?一篇讲清职责、写法与选型
- 时间:2026-08-24
-
- 突破500万分、十核全大核设计!小米晒玄戒O3性能:领先苹果A19 Pro
- 时间:2026-08-24
-
- 红米Note12 Pro扩容内存必须获取root权限吗
- 时间:2026-08-24
-
- 华硕天选7 Pro与Max游戏本发布 售价10399元起
- 时间:2026-08-23
-
- 红米K20 Pro微信悬浮窗开启方法与使用教程
- 时间:2026-08-23
-
- 红米Note12 Pro与Note12续航对比实测
- 时间:2026-08-23
-
- 红米Note12T Pro电池容量与详细配置参数介绍
- 时间:2026-08-23
精选合集
更多大家都在玩
大家都在看
更多-
- 为什么湿头发更容易断裂 蚂蚁庄园今日答案9.15
- 时间:2026-09-14
-
- 蚂蚁庄园今天答题答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园答题今日答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园小课堂2026年9月15日最新题目答案
- 时间:2026-09-14
-
- 小鸡答题今天的答案是什么2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园每日答题答案2026年9月15日
- 时间:2026-09-14
-
- 糖尿病患者禁食所有含糖食物吗 蚂蚁庄园今日答案9月15日
- 时间:2026-09-14
-
- 2026年9月14日蚂蚁新村答案
- 时间:2026-09-14

