它在do while循环内的第三行崩溃,不等待我的输入:
input = kb.nextInt();
堆栈跟踪:
线程“main”java中出现异常。util。非接触性异常
在爪哇。util。扫描仪。throwFor(未知来源)
在爪哇。util。扫描仪。下一个(未知源)
java.util.canner.next国际(来源不明)
java.util.canner.next国际(来源不明)
在主。river.main(river.java:50)
相关代码:
do
{
displayFullMenu();
System.out.print("Selection: ");
input = kb.nextInt();
switch (input)
{
//Create new survey
case 1: currentSurvey = new Survey();
break;
//Display current survey
case 2: currentSurvey.display();
break;
//Save current survey
case 3: saveSurvey(currentSurvey);
break;
//Load a survey
case 4: currentSurvey = loadSurvey();
break;
//Modify a survey
case 5: currentSurvey.modify();
break;
/*******************Test Functions*******************/
//Create new test
case 6: currentSurvey = new Test();
break;
//Display current test
case 7: currentSurvey.display();
break;
//Save current test
case 8: saveSurvey(currentSurvey);
break;
//Load a test
case 9: currentSurvey = loadTest();
break;
//Modify a test
case 10: currentSurvey.modify();
default: System.out.println("Invalid choice. Please make a valid choice: ");
input = kb.nextInt();
System.out.println();
}
} while (input != 99);
kb.close();
在我选择选项9后,它会崩溃。它正确保存文件,然后返回到循环的顶部,并在前面提到的行崩溃。我想让它要求更多的投入。
有什么好处?
我想通了。
整个问题都是由于我没有在main中创建静态扫描仪造成的,当我在main之外的其他方法中需要它时,我创建了新的。
而不是
public class MainDriver
{
public static Scanner kb = new Scanner(System.in);
public void main(String[] args) throws IOException
{
我有:
public class MainDriver
{
public static void main(String[] args) throws IOException
{
public static Scanner kb = new Scanner(System.in);
然后用其他方法创建了新的扫描仪。在这些方法结束时,我关闭了扫描仪。我猜这是在关闭本地扫描程序,因为当我去掉其他方法中的所有close()
语句时,问题就消失了。
当我在saveSurvey()
中选择选项8时,它必须创建一个新的扫描仪(在该方法中),因为所有这些都在我的主方法中。这可能是问题所在吗?
是的,这可能就是问题所在。如果该扫描仪
具有相同的源(System.in
?)askb
和isclose()
d关闭底层流,并且kb
无法再获取输入。
对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?
我对的体验非常糟糕,因为我使用的是和。所以我不能做扫描仪的程序。我是新手,所以请帮助我,“找不到”。这是我到目前为止的代码。
这个代码中的对象扫描仪有什么问题? 当我选择案例2时,我得到了这个错误: 我认为scanner首先声明为int,现在在切换之后,我用类型double收集答案。我不太确定,我需要更多地了解scanner类是如何工作的。
我试图让一个扫描器读取文本文件的输入,将该输入放入一个字符串,为该字符串设置一个StringTokenizer,然后设置一个String[],该数组的每个元素都是该StringTokenizer的标记。这样做的目的是从文本文件中获取输入文本的String[],以便数组的每个元素都是文本文件中的一个单词。但是,到目前为止,我的代码生成了一个NoSuchElementFound异常。 为什么会发生这种
声纳扫描仪在运行扫描仪时抛出空指针异常。错误指向一个枚举。它实现了一个典型的接口。 我记得几个月前运行扫描仪时没有出现任何问题,但这次不同了,感谢您的帮助。 添加了一些乱码,我可以保证没有编译问题。 包括声纳项目属性。#所需元数据sonar.project密钥=com.companysonar.project名称=项目sonar.project版本=1.0