如何将文本文件存储到 2d int 数组中

How to store text file into 2d int array

我有两个格式如下的文件,其中第一个 int 需要存储在某个地方,第二行及以下将存储到一个二维数组中。第一个数字,在本例中为 4,表示大小为 int [][] array = new int [2*4][4];然而,4 不应该是数组的一部分,应该被丢弃。文件路径将通过命令行提供给程序。我还没有找到任何可以执行此功能的罐子。

4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7

我已经使用 java 7 API 将文件读入列表。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class SOTest {

    public static void main(String[] args) throws IOException  {
        int[][] arr = null;
        String path = args[0];
        List<String> lines = Files.readAllLines(Paths.get(path));
        for (int i=0; i<lines.size() ; i++) {
            String[] aStr = lines.get(i).split("\s+");
            if(aStr.length==1) {    
                int size = Integer.valueOf(aStr[0]);
                System.out.println("Size of array "+size);
                arr = new int[size][size];
                populateArr(arr, lines.subList(i+1, i+size+1));
                print(arr);
                i = i+size;
            }   
        }
    }

    public static void populateArr(int[][] arr, List<String> list) {
        for(int i=0; i<list.size(); i++) {
            String[] values = list.get(i).split("\s+");
            for(int j=0; j<values.length; j++) {
                arr[i][j] = Integer.parseInt(values[j]);
            }
        }
    }
    
    private static void print(int[][] arr) {
        System.out.println("***********PRINT***********");
        for(int i=0; i<arr.length; i++) {
            for(int j=0; j<arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }       
    }
}

输入(文件位置) 文件内容如下

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

java 程序的输出

Size of array 4
***********PRINT***********
7 5 6 4 
5 4 6 7 
4 5 6 7 
4 5 6 7 
Size of array 3
***********PRINT***********
1 2 3 
4 5 6 
7 8 9