java - 如何将从文件读取的数据存储到二维数组中

标签 java arrays

我目前正在处理我的作业,该作业要求我从文本文件中读取输入并将其存储到矩阵中。基本上我的部分代码在这里。

    int count = 0 ;
    double[][] matrix = null;

    while ((line = reader.readLine()) != null) 
    {   
        line2 = line.split(" ");

        double[] criteriaWeight = {Double.parseDouble(line2[0]),Double.parseDouble(line2[1]),Double.parseDouble(line2[2]),Double.parseDouble(line2[3])};

        for ( int i = 0 ; i < criteriaWeight.length ; i++ )
            matrix[count][i] = criteriaWeight[i];

        count++;
    }

现在,我想做的逻辑是从文本文件中读取数据,然后将其转换为 double 并存储到二维数组中(matrix)。我设法从文件中读取数据。这是没有错误的。

现在,我的问题是在 matrix[count][i] = criteriaWeight[i]; 处出现错误

Exception in thread "main" java.lang.NullPointerException
at javaapplication2.JavaApplication2.readFile(JavaApplication2.java:42)
at javaapplication2.JavaApplication2.main(JavaApplication2.java:56)
Java Result: 1

有人可以指出我的错误吗?非常感谢。

最佳答案

NullPointerException

Thrown when an application attempts to use null in a case where an object is required. These include:

  • 调用 null 对象的实例方法。
  • 访问或修改空对象的字段。
  • 将 null 的长度视为数组。
  • 像数组一样访问或修改 null 的槽。
  • 抛出 null 就像它是一个 Throwable 值一样。

所以,在您的代码中double[][] matrix = null;

您使用 null 声明并初始化。

所以当你写

  matrix[count][i]

那仍然是空的。您需要像这样初始化

 double[][] matrix = new double[x][y];

如果您正在寻找动态数组,请考虑使用ArrayList

关于java - 如何将从文件读取的数据存储到二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510876/

相关文章:

java - Android - 在notifyDataSetChanged之后ListView保持空白

javascript - 通过属性查找一个数组中不存在于另一个数组中的对象

java - 如何计算字符串数组中字符串的重复次数

在每个数据字段中复制一个数组到链表

C3JS 中的 JavaScript foreach

c - 有没有办法根据 t 确定数组的大小

java - 如何在 SharedPreferences 中存储键值对?

java - 给定 jRadioButton 选项的 jButton 的 ActionEvent

Java:将通用类型(T)对象转换为由类型化调用签名识别的完全类型化对象?

java - Android 上使用 OpenCV 在实时相机预览中进行实时 Logo 检测