0
点赞
收藏
分享

微信扫一扫

Java(day169):Properties 处理不再麻烦!PropertiesUtils 助你高效读写配置文件

大家好,我是不熬夜崽崽!大家如果觉得看了本文有帮助的话,麻烦给不熬夜崽崽点个三连(点赞、收藏、关注)支持一下哈,大家的支持就是我写作的无限动力。

🍵 前言

在 Java 项目中,.properties 文件是配置文件的常见格式,简单、易读、易写。然而,当项目变得越来越复杂,频繁地读取、修改配置文件,尤其是涉及动态修改配置时,常常会显得非常麻烦且低效。PropertiesUtils 工具类能帮你自动化、简化这些操作,让你的配置管理更加优雅。

🧰 核心功能

1️⃣ 读取 .properties 文件:轻松读取配置

通过 PropertiesUtils,你可以轻松读取 .properties 文件的内容。只需要传入配置文件路径,返回一个 Properties 对象,操作起来方便又快捷。

import java.io.*;
import java.util.*;

public class PropertiesUtils {
    public static Properties loadProperties(String filePath) {
        Properties properties = new Properties();
        try (InputStream input = new FileInputStream(filePath)) {
            properties.load(input);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return properties;
    }
}

使用示例:

Properties properties = PropertiesUtils.loadProperties("config.properties");
String dbUrl = properties.getProperty("db.url");
System.out.println(dbUrl);

优点: 可以快速加载 .properties 文件,简洁又高效。

2️⃣ 动态修改配置:实时更改配置文件内容

有时候,我们需要在程序运行过程中修改配置,PropertiesUtils 提供了对配置文件的动态修改功能。你可以更新已有的配置项,或者新增配置。

public class PropertiesUtils {
    public static void updateProperty(String filePath, String key, String value) {
        Properties properties = loadProperties(filePath);
        properties.setProperty(key, value);
        saveProperties(filePath, properties);
    }

    private static void saveProperties(String filePath, Properties properties) {
        try (OutputStream output = new FileOutputStream(filePath)) {
            properties.store(output, null);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

使用示例:

PropertiesUtils.updateProperty("config.properties", "db.url", "jdbc:mysql://localhost:3306/newdb");

优点: 不需要手动打开配置文件,直接通过程序修改配置项,提升效率。

3️⃣ 缓存配置文件:提升频繁读取的性能

如果你的应用需要频繁读取 .properties 配置文件,直接每次读取文件会浪费大量的 IO 资源。为了提高性能,可以将配置内容缓存到内存中,减少对文件系统的访问。

import java.util.*;

public class PropertiesUtils {
    private static Properties cachedProperties;

    public static Properties loadProperties(String filePath) {
        if (cachedProperties == null) {
            cachedProperties = new Properties();
            try (InputStream input = new FileInputStream(filePath)) {
                cachedProperties.load(input);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return cachedProperties;
    }

    public static void clearCache() {
        cachedProperties = null;
    }
}

使用示例:

Properties properties = PropertiesUtils.loadProperties("config.properties");
String dbUrl = properties.getProperty("db.url");
System.out.println(dbUrl);

优点: 缓存机制大大提高了性能,避免了多次从磁盘读取相同的配置文件。

🎯 总结

PropertiesUtils 工具类让你高效、简便地操作 .properties 文件,解决了频繁读取配置动态修改配置以及性能优化等常见问题。让你的配置管理更简洁,代码更整洁!

📌 小贴士

技巧 推荐用法
读取配置 PropertiesUtils.loadProperties(filePath)
修改配置 PropertiesUtils.updateProperty(filePath, key, value)
缓存配置 利用 loadProperties 减少频繁的 IO 操作
举报

相关推荐

0 条评论