由于某些原因,当我试图为我正在编写的程序获取用户输入时,我的程序崩溃了。我的主要课程看起来像这样。
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();
有人知道造成这种情况的原因是什么吗?其他一切都很完美。 到目前为止,这是我获得用户输入的唯一两个位置。