如何读取文本文件并将内容存入Java Map(键值对形式)
Java读取键值对文本文件并存入Map
嘿,这事儿不难,我给你写个完整的Java实现,还带注释说明,保证你能直接用或者按需修改~
实现思路
- 用
BufferedReader逐行读取文本文件,效率更高 - 第一行读取后按逗号分割成键数组
- 第二行读取后按逗号分割成值数组
- 遍历两个数组,将对应位置的键和值存入
HashMap - 加入异常处理,避免文件不存在、读取失败或者键值数量不匹配的问题
完整代码
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class KeyValueFileReader { public static void main(String[] args) { // 替换成你的文件路径 String filePath = "your-file-path.txt"; Map<String, String> keyValueMap = new HashMap<>(); try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { // 读取第一行的键 String keysLine = reader.readLine(); if (keysLine == null) { System.err.println("文件为空,没有键信息"); return; } String[] keys = keysLine.split(","); // 读取第二行的值 String valuesLine = reader.readLine(); if (valuesLine == null) { System.err.println("文件只有键信息,没有对应的值"); return; } String[] values = valuesLine.split(","); // 检查键和值的数量是否匹配 if (keys.length != values.length) { throw new IllegalArgumentException("键的数量和值的数量不匹配!键数量:" + keys.length + ",值数量:" + values.length); } // 存入Map for (int i = 0; i < keys.length; i++) { // 去除键和值前后的空格(可选,根据你的文件格式调整) String key = keys[i].trim(); String value = values[i].trim(); keyValueMap.put(key, value); } // 打印结果,验证是否正确 System.out.println("生成的键值对Map:" + keyValueMap); } catch (IOException e) { System.err.println("读取文件时发生错误:" + e.getMessage()); e.printStackTrace(); } catch (IllegalArgumentException e) { System.err.println(e.getMessage()); } } }
关键说明
- 文件路径:记得把
your-file-path.txt替换成你实际的文件路径,比如"C:/data/user-info.txt"或者"./src/main/resources/user.txt" - 空格处理:代码里用了
trim()去除键和值前后的空格,如果你的文件里没有多余空格,可以去掉这部分 - 异常处理:涵盖了文件读取失败、文件内容不完整、键值数量不匹配的情况,方便你排查问题
- 扩展性:如果你的文件有多行值(比如多个用户的信息),可以把读取值的部分改成循环读取每一行,然后生成多个Map或者存入List里
内容的提问来源于stack exchange,提问作者Sreedhar reddy
相关产品推荐
相关产品推荐

