Java 从文本读取并将其存储到数组时发生NullPointerException

Java 从文本读取并将其存储到数组时发生NullPointerException,java,arrays,Java,Arrays,我在下面的代码中得到一个null指针异常。代码从文本中读取内容,并将每条线存储在数组中。数组是一个包含长度为5的单个字符串数组的类。我弄不明白为什么会出现这个错误 Question[] questions = new Question[100]; File file = new File("q.txt"); String[] tempq = new String[5]; try { Scanner read = new Scanner(file);

我在下面的代码中得到一个null指针异常。代码从文本中读取内容,并将每条线存储在数组中。数组是一个包含长度为5的单个字符串数组的类。我弄不明白为什么会出现这个错误

Question[] questions = new Question[100];
File file = new File("q.txt");
    String[] tempq = new String[5];
    try {
        Scanner read = new Scanner(file);

        while(counter<100){
            for(int i= 0;i<5;i++){
                tempq[i]=read.nextLine();
            }
            questions[counter].setDetails(tempq);
            counter++;

        }
    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
    }
问题[]问题=新问题[100];
File File=新文件(“q.txt”);
字符串[]tempq=新字符串[5];
试一试{
扫描仪读取=新扫描仪(文件);
而(计数器此行:

Question[] questions = new Question[100];
此行将创建一个包含100个
Question
对象的数组,但不会创建数组中的每个对象。添加

questions[counter] = new Question();

(或任何构造函数)创建问题,然后设置详细信息。

默认情况下,数组使用默认值初始化,例如int为0,object为char
null

在使用数组之前,必须先填充数组中的值


要查看完整列表,请查看

以及您从何处获得空指针?我没有完全理解您所说的内容。您的
问题
对象为空。您需要创建它们。您只有一个数组。我尝试实现您的解决方案,但得到了java.util.NoSuchElementException erra
java.util.NoSuchElementException
可能来自您的
扫描仪
-检查您的输入文件是否正确。我的输入文件是否正确,当我尝试执行相同的操作而不是arrray时,这是有效的