java:Properties属性文件

使用Properties读取属性文件中的键值对数据

Properties的构造器

  • public Properties():创建一个没有默认值的空属性列表。

Properties读取键值对数据的常用方法

  • public void load(InputStream inStream):从输入字节流中读取属性列表(键值对数据)。
  • public void load(Reader reader):从输入字符流中以简单的面向行的格式读取属性列表(键值对数据)。
  • public String getProperty(String key):在此属性列表中查找具有指定键的属性。
  • public Set stringPropertyNames():获取全部键的集合。

示例

要读取的info.properties文件的内容:

ip=192.168.1.2
port=9090
username=test
password=123456

读取代码:

package com.team;

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Test {

    public static void main(String[] args) throws IOException {
        // 创建Properties对象
        Properties properties = new Properties();
        System.out.println(properties);
        System.out.println("---------------------------------------------");

        // 加载属性文件
        properties.load(new FileReader("oop-app1/src/info.properties"));
        System.out.println(properties);
        System.out.println("---------------------------------------------");

        // 获取单个属性
        System.out.println(properties.get("ip"));
        System.out.println(properties.get("username"));
        System.out.println("---------------------------------------------");

        // 通过键遍历
        Set<String> keys = properties.stringPropertyNames();
        for (String key : keys) {
            String value = properties.getProperty(key);
            System.out.println(key + ":" + value);
        }
        System.out.println("---------------------------------------------");

        // 通过Map的forEach方法遍历
        properties.forEach((k, v) -> {
            System.out.println(k + ":" + v);
        });
    }
}

运行输出:

{}
---------------------------------------------
{password=123456, port=9090, ip=192.168.1.2, username=test}
---------------------------------------------
192.168.1.2
test
---------------------------------------------
password:123456
port:9090
ip:192.168.1.2
username:test
---------------------------------------------
password:123456
port:9090
ip:192.168.1.2
username:test

使用Properties将键值对数据写入到属性文件中

Properties将键值对数据写入属性文件的常用方法

  • public Object setProperty(String key, String value):将键值对数据写入到Properties对象中。
  • public void store(OutputStream out, String comments):将此 Properties中的属性列表(即键值对)写入到输出字节流。
  • public void store(Writer writer, String comments):将此 Properties中的属性列表(即键值对)写入到输出字符流。

示例

package com.team;

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

public class Test2 {

    public static void main(String[] args) throws IOException {
        // 创建Properties对象
        Properties properties = new Properties();
        System.out.println(properties);
        System.out.println("-------------------------");

        // 将键值对写入properties对象中
        properties.setProperty("name", "张三");
        properties.setProperty("age", "19");
        System.out.println(properties);
        System.out.println("-------------------------");

        // 将properties中的键值对数据输出到属性文件中
        properties.store(new FileWriter("oop-app1/src/user.properties"), "this file contains user info");
    }
}

运行,控制台输出:

{}
-------------------------
{name=张三, age=19}
-------------------------

同时,生成了输出文件user.properties,其中的内容为:

#this file contains user info
#Sat Apr 12 20:00:10 CST 2025
age=19
name=张三

你可能感兴趣的:(java,开发语言)