简体   繁体   中英

NullPointerException while trying to initialize a 2d array

I am getting a nullPointerException trying to add values from a text file to a 2d array. The first 2 values determine the rows and columns. Any ideas what is throwing it. Ignore the exception handling, and the print statements. I am trying to get the array initialized then will go back and beef it up a bit.

public Help(String filename) throws FileNotFoundException,
        InvalidFileFormatException {
    this.filename = filename;

    System.out.println("Reading in file: " + filename);

    String number = "";
    int row = 0;
    int col = 0;
    int count = 0;

    try {
        Scanner inputFile = new Scanner(new File(filename));

        while (inputFile.hasNextInt()) {
            row = Integer.parseInt(inputFile.next());
            col = Integer.parseInt(inputFile.next());
            System.out.println("Row : " + row);
            System.out.println("Col : " + col);
            baseMap = new double[row][col];
            System.out.println(baseMap[2][4]);
            for (int i = 0; i < baseMap.length; i++){
                for (int j = 0; j < baseMap[i].length; j++){
                    baseMap[i][j] = Double.parseDouble(inputFile.next());
                }
            }
        }
System.out.println(baseMap[2][4]);
    } catch (Exception e) {
        System.out.println(e.toString());
    } 

OUTPUT Reading in file: sampleMap2.txt Row : 5 Col : 5 0.0 Exception in thread "main" java.lang.NullPointerException

What value do you expect to see here;

baseMap = new double[row][col];
System.out.println(baseMap[2][4]);

How about if row == 1?

Also what if there is no more data at:

baseMap[i][j] = Double.parseDouble(inputFile.next());

Maybe you just don't have enough data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM