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
相关产品推荐
相关产品推荐

