You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何读取properties配置文件中同一属性的多个值

Java读取properties配置拆分用户属性的实现方案

前置说明

  • 全程使用JDK自带API实现,无需引入任何第三方框架(包括Spring)
  • 兼容配置值中逗号前后的空格场景,可自动过滤多余空值
  • 如果配置文件存放在磁盘绝对路径,只需将代码中的输入流替换为new FileInputStream("/你的/config.properties路径")即可

完整实现代码

import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.stream.Collectors;

public class PropertiesReader {
    public static void main(String[] args) {
        Properties prop = new Properties();
        // 读取resources目录下的config.properties配置文件
        try (InputStream input = PropertiesReader.class.getClassLoader().getResourceAsStream("config.properties")) {
            if (input == null) {
                System.out.println("未找到config.properties配置文件");
                return;
            }
            // 加载配置文件
            prop.load(input);
            // 读取users属性,取不到默认返回空串
            String usersStr = prop.getProperty("users", "").trim();
            if (usersStr.isEmpty()) {
                System.out.println("users属性未配置或为空");
                return;
            }
            // 1. 转换为数组
            String[] userArray = Arrays.stream(usersStr.split(","))
                    .map(String::trim)
                    // 过滤空字符串,避免配置多逗号/空值的异常场景
                    .filter(user -> !user.isEmpty())
                    .toArray(String[]::new);
            System.out.println("用户数组:" + Arrays.toString(userArray));
            // 2. 转换为List
            List<String> userList = Arrays.stream(usersStr.split(","))
                    .map(String::trim)
                    .filter(user -> !user.isEmpty())
                    .collect(Collectors.toList());
            System.out.println("用户List:" + userList);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

关键逻辑说明

  • 配置读取用JDK原生提供的java.util.Properties类,无需额外依赖
  • 拆分时用split(",")按逗号切割字符串,之后调用trim()清除每个用户前后的空格,适配配置中逗号后加空格的常见书写习惯
  • 增加空值过滤逻辑,避免配置出现users=user1,,user2这类多逗号的异常场景时生成无效空用户

内容的提问来源于stack exchange,提问作者unanonymous56

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:36:02