获取用户输入java.util.NoSuchElementException时崩溃

时间:2017-03-08 07:18:56

标签: java input java.util.scanner

由于某些原因,当我试图为我正在编写的程序获取用户输入时,我的程序崩溃了。我的主要课程看起来像这样。

package myQuiz;
import java.util.Scanner;

public class QuizApp {

public static void main(String[] args) {
    String filename;
    System.out.print("Enter a filename: ");
    Scanner sc = new Scanner(System.in);
    filename = sc.nextLine();
    sc.close();

    Quiz theQuiz = new Quiz(filename);

    theQuiz.testingFunction();
   }
}

一切正常,直到我调用testingFunction并且在其中我要求用户输入。这就是testingFunction的样子,也是Quiz类的一部分

package myQuiz;
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.File;
import java.util.ArrayList;

public class Quiz {

private ArrayList<Question> questions = new ArrayList<Question>();
private String fileName;
private boolean fileIsValid;
private int correct;
private int incorrect;

public Quiz(String theFile){
    fileName = theFile;
    fileIsValid = false;
    correct = 0;
    incorrect = 0;
    loadQuestions(fileName);
}

public void testingFunction(){

        System.out.println("Enter: ");
        String input = "";
        Scanner as = new Scanner(System.in);
        input = as.nextLine();
        as.close();

        if(questions.get(0).checkAnswer(input) == true)
            System.out.println("True");
        else
            System.out.println("False");

   }
}

错误说明了这一点。

Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at myQuiz.Quiz.testingFunction(Quiz.java:41) at myQuiz.QuizApp.main(QuizApp.java:15)

第41行是input = as.nectLine(); 第15行是theQuiz.testingFunction();

有人知道造成这种情况的原因是什么吗?其他一切都很完美。 到目前为止,这是我获得用户输入的唯一两个位置。

0 个答案:

没有答案