Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试初始化2d数组时出现NullPointerException_Java_Arrays_File Upload_Nullpointerexception - Fatal编程技术网

Java 尝试初始化2d数组时出现NullPointerException

Java 尝试初始化2d数组时出现NullPointerException,java,arrays,file-upload,nullpointerexception,Java,Arrays,File Upload,Nullpointerexception,我得到一个nullPointerException,试图将值从文本文件添加到2d数组。前两个值确定行和列。知道是什么扔的吗。忽略异常处理和打印语句。我正在尝试初始化数组,然后将返回并增强它 public Help(String filename) throws FileNotFoundException, InvalidFileFormatException { this.filename = filename; System.out.println("Read

我得到一个nullPointerException,试图将值从文本文件添加到2d数组。前两个值确定行和列。知道是什么扔的吗。忽略异常处理和打印语句。我正在尝试初始化数组,然后将返回并增强它

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());
    } 
公共帮助(字符串文件名)引发FileNotFoundException,
InvalidFileFormatException{
this.filename=文件名;
System.out.println(“读入文件:“+filename”);
字符串编号=”;
int行=0;
int col=0;
整数计数=0;
试一试{
扫描仪输入文件=新扫描仪(新文件(文件名));
while(inputFile.hasNextInt()){
row=Integer.parseInt(inputFile.next());
col=Integer.parseInt(inputFile.next());
System.out.println(“行:”+行);
System.out.println(“Col:+Col”);
baseMap=新的双[行][col];
System.out.println(baseMap[2][4]);
对于(int i=0;i
输出 正在读取文件:sampleMap2.txt 世界其他地区:5 上校:5 0
线程“main”java.lang.NullPointerException中的异常

您希望在这里看到什么值

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

此外,如果在以下位置没有更多数据,该怎么办:

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

也许你只是没有足够的数据。

请添加完整的stacktrace。哪一个是抛出错误的?对于初学者,使用
Scanner\nextInt
而不是自己调用
Integer\parseInt
;它更可读,如果失败,你会得到一个信息更丰富的异常。我只是看看它是否真的初始化了一个0.0在那个位置。它在抛出异常之前打印出0.0。那么抛出异常的是哪一行呢?抛出异常的是另一个类中的另一个方法。非常抱歉浪费了您的时间,但非常感谢您的帮助。它让我思考并帮助我找到了修复方法。