Properties的存入和读取

Properties中的方法有很多种,最主要的功能就是实现数据的存入和读取。在 Java 的 Properties 类中,每个键(key)都是唯一的,所以不能直接存储多个值。

一、Properties的 load()方法和 getProperty()方法

Properties的 load()方法的用法是传入一个输入文件流的对象,然后load方法可以去读取里面的数据,也就是说可以把数据从文件中放到内存中展示。Properties的getProperty()方法的用法是根据指定的键(key) 去读取文件中与key绑定的值(value)的。Properties的getProperty()方法有两种重载方式,一种是getProperty(String key),一种是getProperty(String key,String defaultvalue),两种方式都是先找文件中的指定的key,看是否存在这个key,如果存在则返回key所对应的value值,若不存在,第一种方式直接返回null,第二种方式就是返回所给的  defaultvalue的默认值。

如下图:

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class PropertiesExample {
    public static void main(String[] args) {
        try {
            Properties properties = new Properties();
            FileInputStream fileInputStream = new FileInputStream("example.properties");
            properties.load(fileInputStream);
            fileInputStream.close();

            String value1 = properties.getProperty("key1","value1");
            String value2 = properties.getProperty("key2");

            System.out.println("Value 1: " + value1);
            System.out.println("Value 2: " + value2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

value1和value2的结果展示

 因为我们在读取文件时,文件中并没有存放任何值,因此value1和value2都读不到需要的值,所以我们可以看到value1呈现的是第二种方式中的defaultvalue的值,而value2直接返回了null。

二、Properties的 setProperty()方法和 store()方法

之前我们用到了Properties的 getProperty()方法,知道了它有从文件中读取数据的功能,那我们想想它是否还有存入数据到文件中的功能呢?

Properties的setProperty()方法的用法正是这样的,它可以把数据从内存中存入到文件里。在setProperty(String key,String value)的方法中我们需要给一个key和一个相对应的value,通过store(OutputStream out,String comments)方法就会把这两个数据写到所对应的文件中。其中OutputStream表示输出流,comments是一串字符串,表示注释信息。

如下图:

Properties properties = new Properties();
properties.setProperty("key1", "value1");
properties.setProperty("key2", "value2");

OutputStream output = new FileOutputStream("example.properties");
properties.store(output, "This is an example properties file.");
output.close();

结果如下图所示

 我们可以看到两个数据都已经存到了文件中,而且注释也呈现在了最上端。

最后,在使用Properties我们需要注意一些事情:

1.因为Properties的用法是根据key去找value,因此Properties的key值是唯一的,所以它不适用于需要存多个值在相同的key中。

2.键和值都必须是字符串:properties 类是基于字符串的,因此键和值都必须是字符串类型。如果需要存储其他类型的数据,可以使用字符串表示,并在使用时进行类型转换。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值