将.txt文件中的数字读入二维数组并在控制台上打印

Syl*_*ang 5 java arrays multidimensional-array

所以基本上我想读取一个.txt文件,其中包含以下内容:

3 5 

2 3 4 5 10

4 5 2 3 7

-3 -1 0 1 5
Run Code Online (Sandbox Code Playgroud)

并将它们存储到2D数组中并在控制台上打印,我从控制台获得的结果很好,但是只缺少第一行3 5,我不知道我的代码有什么问题使它忽略了第一行。我现在得到的输出是:

2  3  4  5 10 

4  5  2  3  7

-3 -1  0  1  5 
Run Code Online (Sandbox Code Playgroud)
import java.io.*;
import java.util.*;

public class Driver0 {
    public static int[][] array;
    public static int dimension1, dimension2;

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Welcome to Project 0.");
        System.out.println("What is the name of the data file? ");
        String file = input.nextLine();
        readFile(file);
    }

    public static void readFile(String file) {
        try {
            Scanner sc = new Scanner(new File(file));
            dimension1 = sc.nextInt();
            dimension2 = sc.nextInt();
            array = new int[dimension1][dimension2];
            while (sc.hasNext()) {
                for (int row = 0; row < dimension1; row++) {
                    for (int column = 0; column < dimension2; column++) {
                        array[row][column] = sc.nextInt();
                        System.out.printf("%2d ", array[row][column]);
                    }
                    System.out.println();
                }

            }
            sc.close();
        }

        catch (Exception e) {
            System.out
            .println("Error: file not found or insufficient     requirements.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 0

前两个值被保存到维度 1 和维度 2 变量中,因此当稍后调用 sc.nextInt 时,它已经读取了前两个数字并移至下一行。所以那些第一个整数不会进入数组。