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

如何读取文本文件并将内容存入Java Map(键值对形式)

Java读取键值对文本文件并存入Map

嘿,这事儿不难,我给你写个完整的Java实现,还带注释说明,保证你能直接用或者按需修改~

实现思路

  1. 用BufferedReader逐行读取文本文件,效率更高
  2. 第一行读取后按逗号分割成键数组
  3. 第二行读取后按逗号分割成值数组
  4. 遍历两个数组,将对应位置的键和值存入HashMap
  5. 加入异常处理,避免文件不存在、读取失败或者键值数量不匹配的问题

完整代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:58:30