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

如何让Java无需预设行列数即可读取任意txt文件中的二维数组?

无需预设行列数读取TXT中的二维数组解决方案

当然可以实现,核心思路是用动态集合先存储每一行的数据,不需要预先固定行列长度,最后再转成二维数组。下面是优化后的完整代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class GridReader {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\sitar\\Desktop\\GridReader\\src\\2dArray.txt");
        
        // 用动态集合存储每一行的数组,无需预设行数
        ArrayList<int[]> rowList = new ArrayList<>();
        
        // try-with-resources自动关闭Scanner,避免资源泄漏
        try (Scanner sc = new Scanner(file)) {
            while (sc.hasNextLine()) {
                String line = sc.nextLine().trim();
                // 跳过空行(可选,根据需求调整)
                if (line.isEmpty()) {
                    continue;
                }
                // 按", "分割每行内容
                String[] strElements = line.split(", ");
                int[] row = new int[strElements.length];
                // 转成int数组
                for (int i = 0; i < strElements.length; i++) {
                    row[i] = Integer.parseInt(strElements[i]);
                }
                rowList.add(row);
            }
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到:" + e.getMessage());
            return;
        } catch (NumberFormatException e) {
            System.out.println("数据格式错误,包含非数字内容:" + e.getMessage());
            return;
        }
        
        // 将集合转成二维int数组
        int[][] array = rowList.toArray(new int[0][]);
        System.out.println("output:" + Arrays.deepToString(array));
    }
}

关键细节说明

  • 动态存储行:ArrayList<int[]>可以自动扩容,不管txt里有多少行都能容纳,完全不需要预先定义行数
  • 自适应列数:每行读取后根据分割得到的元素个数创建对应长度的int数组,支持每行列数不同的情况
  • 资源安全:使用try-with-resources语法,确保Scanner在使用后自动关闭,避免IO资源泄漏
  • 异常处理:添加了文件未找到和数据格式错误的捕获,让程序更健壮

测试示例

如果你的txt内容是:

1, 2, 3
3, 4, 5
5, 6, 7, 8

程序会输出:

output:[[1, 2, 3], [3, 4, 5], [5, 6, 7, 8]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:11