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

Java中将文本文件数据存入二维数组的实现方法求助

解决文本文件数据存入二维数组的问题

嘿,我来帮你搞定这个把调查结果存入二维数组的问题!首先得明确你的文本文件里每行数据的分隔规则(比如逗号、空格还是制表符),这是拆分每行元素的关键。下面我会基于每行用逗号分隔数据的常见场景给出方案,你可以根据实际情况调整分隔符。

思路拆解

Java的数组是固定长度的,我们没法一开始就确定二维数组的大小,所以可以先通过List动态存储每行的数据,最后再把List转换成二维数组。具体步骤是:

  • 读取文件所有行,先存入List<String>,拿到总行数
  • 对每行数据进行拆分,把每行元素存入List<List<String>>(如果是数字类型,可换成Integer/Double等)
  • 最后把嵌套List转换成对应的二维数组

完整代码示例

import java.io.*;
import java.util.ArrayList;
import java.util.List;

class Final {
    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\loren\\Desktop\\t\\respuestas.txt");
        BufferedReader br = new BufferedReader(new FileReader(file));
        String st;
        // 用来存储所有行拆分后的动态数据
        List<List<String>> dataList = new ArrayList<>();

        while ((st = br.readLine()) != null) {
            // 这里假设每行用逗号分隔,实际是空格就换成"\\s+",制表符用"\\t"
            String[] rowElements = st.split(",");
            List<String> rowList = new ArrayList<>();
            for (String element : rowElements) {
                // 如果是数字,可在这里转成Integer/Double,比如 Integer.parseInt(element.trim())
                rowList.add(element.trim()); // 去除元素前后多余空格
            }
            dataList.add(rowList);
        }
        br.close(); // 记得关闭IO流

        // 把动态List转换成固定长度的二维数组
        int rows = dataList.size();
        if (rows == 0) {
            System.out.println("文件里没有数据哦");
            return;
        }
        int cols = dataList.get(0).size();
        String[][] twoDArray = new String[rows][cols];

        for (int i = 0; i < rows; i++) {
            List<String> row = dataList.get(i);
            twoDArray[i] = row.toArray(new String[cols]);
        }

        // 测试输出二维数组
        System.out.println("转换后的二维数组:");
        for (String[] row : twoDArray) {
            for (String element : row) {
                System.out.print(element + "\t");
            }
            System.out.println();
        }
    }
}

额外说明

  • 如果你的数据是数字类型,只需把List<String>换成List<Integer>(或Double),拆分后用Integer.parseInt(element.trim())转换,二维数组对应换成int[][]或double[][]。
  • 如果每行元素数量不一致,二维数组处理起来会比较麻烦(Java二维数组每行长度可不同,但灵活性差),建议直接用List<List<String>>存储会更方便。
  • 实际项目中建议用try-catch块捕获IOException,避免因文件不存在、读取失败等情况导致程序崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:29:55