学科分类
目录
Java基础

Properties集合

Map接口还有一个实现类Hashtable,它和HashMap十分相似,其中一个主要区别在于Hashtable是线程安全的。另外在使用方面,Hashtable的效率也不及HashMap,所以,目前基本上被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配置文件进行读取和写入操作(假设test.Properties配置文件在项目的根目录下),如文件2所示。

文件2 Example22.java

 1    import java.io.FileInputStream;
 2    import java.io.FileOutputStream;
 3    import java.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    }

运行结果如图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流的有关内容将会在下一章进行详细讲解,此处不必深究。

点击此处
隐藏目录