位置:首页 > Java > Properties集合定义与用法详解

Properties集合定义与用法详解

时间:2026-08-18  |  作者:星际追番人  |  阅读:0

Hashtable与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所示。

Properties集合定义与用法详解_wishdown.com

图1 运行结果

执行完文件1程序后,刷新并查看原有的test.properties配置文件中的内容,如图2所示。

Properties集合定义与用法详解_wishdown.com

图2 test.properties配置文件内容

案例过程解析

在文件1里,先创建了一个Properties集合对象。

随后通过IO流读取test.properties配置文件中的内容,并逐项遍历,完成了基于Properties集合读取properties配置文件的整个过程。

紧接着,仍然是通过IO流明确写入的文件路径和文件名,再借助Properties的setProperty()方法新增一个键值对。

最后通过store()方法把这部分新增内容写回到properties配置文件中。

也就是说,这里涉及到的test.properties配置文件,本质上是依靠IO流来完成读写操作的。

至于IO流本身的相关知识,下一章会展开详细说明。

这里先知道它的用法就够了,不必过早钻得太深。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多