Java 写 Properties 文件

在 Java 中,我们经常需要读取和写入配置文件,其中一种常见的配置文件格式就是 Properties 文件。Properties 文件是一种简单的键值对形式的文件,常用来存储应用程序的配置信息。

本文将介绍如何使用 Java 读取和写入 Properties 文件,并附有代码示例。下面将从以下几个方面展开介绍:

  1. Properties 文件的格式
  2. 读取 Properties 文件
  3. 写入 Properties 文件
  4. 示例代码

1. Properties 文件的格式

Properties 文件是一种文本文件,每个配置项都以键值对的形式保存。其中,键和值之间使用等号或冒号进行分隔,通常以 .properties 作为文件后缀名。

以下是一个示例的 Properties 文件:

# 注释行以井号或感叹号开头
database.url = jdbc:mysql://localhost:3306/mydb
database.username = myuser
database.password = mypassword

2. 读取 Properties 文件

Java 提供了 java.util.Properties 类来读取 Properties 文件。下面是读取 Properties 文件的步骤:

  1. 创建一个 Properties 对象。
  2. 使用 load() 方法加载 Properties 文件。
  3. 使用 getProperty() 方法获取配置项的值。

下面是一个读取 Properties 文件的示例:

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

public class PropertiesReader {

    public static void main(String[] args) {
        Properties properties = new Properties();
        try {
            // 加载 Properties 文件
            properties.load(new FileInputStream("config.properties"));

            // 获取配置项的值
            String url = properties.getProperty("database.url");
            String username = properties.getProperty("database.username");
            String password = properties.getProperty("database.password");

            System.out.println("URL: " + url);
            System.out.println("Username: " + username);
            System.out.println("Password: " + password);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,我们首先创建了一个 Properties 对象,并使用 load() 方法加载了名为 config.properties 的 Properties 文件。接着,我们通过 getProperty() 方法获取了 database.urldatabase.usernamedatabase.password 这三个配置项的值,并将其打印出来。

3. 写入 Properties 文件

除了读取 Properties 文件,我们还可以使用 Java 写入 Properties 文件。下面是写入 Properties 文件的步骤:

  1. 创建一个 Properties 对象。
  2. 使用 setProperty() 方法设置配置项的值。
  3. 使用 store() 方法将 Properties 对象写入 Properties 文件。

下面是一个写入 Properties 文件的示例:

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

public class PropertiesWriter {

    public static void main(String[] args) {
        Properties properties = new Properties();
        try {
            // 设置配置项的值
            properties.setProperty("database.url", "jdbc:mysql://localhost:3306/mydb");
            properties.setProperty("database.username", "myuser");
            properties.setProperty("database.password", "mypassword");

            // 将 Properties 对象写入 Properties 文件
            properties.store(new FileOutputStream("config.properties"), null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,我们首先创建了一个 Properties 对象,并使用 setProperty() 方法设置了 database.urldatabase.usernamedatabase.password 这三个配置项的值。接着,我们使用 store() 方法将 Properties 对象写入名为 config.properties 的 Properties 文件。

4. 示例代码

下面是一个完整的示例代码,包括读取和写入 Properties 文件的部分:

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

public class PropertiesDemo {

    public static void main(String[] args) {
        // 读取 Properties 文件
        readPropertiesFile();

        // 写入 Properties 文件
        writePropertiesFile();
    }

    private static void readPropertiesFile() {
        Properties properties = new Properties();
        try {
            // 加载 Properties 文件
            properties.load(new FileInputStream("config.properties"));

            // 获取配置项的值
            String url = properties.getProperty("database.url");
            String username = properties.getProperty("database.username");
            String password = properties.getProperty("database.password");

            System.out.println("URL: " + url);
            System.out.println("Username: " + username);
            System.out.println("Password: " + password);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void writePropertiesFile() {