Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扫描仪输入不匹配异常错误_Java_Debugging_Text_Java.util.scanner - Fatal编程技术网

Java 扫描仪输入不匹配异常错误

Java 扫描仪输入不匹配异常错误,java,debugging,text,java.util.scanner,Java,Debugging,Text,Java.util.scanner,因此,我昨天运行了这个程序,并意外地在netbeans IDE 7.4中运行了调试器控制台,而且从该程序停止工作以来。我不知道它在我的代码中发生了什么变化 以下是错误: Petname: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:909) at java.util.Scanner.next(Scanner.java:1530) at

因此,我昨天运行了这个程序,并意外地在netbeans IDE 7.4中运行了调试器控制台,而且从该程序停止工作以来。我不知道它在我的代码中发生了什么变化

以下是错误:

Petname: 
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at veterinarian.Veterinarian.main(Veterinarian.java:107)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
我添加了一个简单的println语句,以查看存储了什么以及它的null,即petname

代码是:

public static void main(String[] args) {
    boolean pick = false;       
//***************************add file*******************************************
File file = new File("VetList.txt");      
//*********************declare ojbects******************************************
try{
        Scanner read = new Scanner(file);
        int fix = read.nextInt();
        do{
        for(int x = 0; x < fix; x++){
            String petname = read.nextLine();
            System.out.println("Petname: " + petname);
            int birthday = read.nextInt();
            String species = read.next();
            double bill = read.nextDouble();
            String owner = read.next();
            Veterinarian work = new Veterinarian(petname, birthday, species, bill, owner);
            Veterinarian.Vet.add(work);
            }
    }
    while(read.hasNextLine() == pick);
    }  
catch(FileNotFoundException FNF){
    System.err.format("File not found");}
我无法更改文件格式以更好地阅读


请注意,我已经尝试将java文件本身还原到事件发生之前的某个时间,但它仍然不会运行,并给出相同的错误。我还重新安装了Netbeans。

如果您将所有数据类型更改为
String
,并将代码更改为类似以下内容,则进行调试

                String petname = read.nextLine();
                System.out.println("Petname: " + petname);

                String birthday = read.next();
                String species = read.next();
                String bill = read.next();
                String owner = read.next();
                System.out.println("BirthDay" + birthday);
                System.out.println("Name"+petname);
                System.out.println("BIll" + bill);
                System.out.println("Speci" + species);
                System.out.println("Owner " + owner);
您应该得到如下输出

 Petname: 
 BirthDayhopper
 Name
 BIllkangaroo
 Speci2003
 Owner 555
这意味着您的生日是一个字符串,但您正试图存储为int。。这就是为什么它给出了例外。如果您将代码更改为以下

 if (read.hasNext()) {
  //if prevents NoSuchElementException
                    String petname = read.next();
                    System.out.println("Petname: " + petname);

                    int birthday = read.nextInt();
                    String species = read.next();
                    double bill = read.nextDouble();
                    String owner = read.next();
                    System.out.println("BirthDay" + birthday);
                    System.out.println("Name" + petname);
                    System.out.println("BIll" + bill);
                    System.out.println("Speci" + species);
                    System.out.println("Owner " + owner);
                }

您可以得到所需的输出和所需的数据类型。

哪一个是第107行?顺便说一下,问题与IDE完全无关。看起来你更改了文件中的某些内容,这就是为什么不再起作用。我在生日时收到错误只是通过任何方式,你的文件中没有新的空行吗?可能在结尾,但我在结尾删除了所有空白
 if (read.hasNext()) {
  //if prevents NoSuchElementException
                    String petname = read.next();
                    System.out.println("Petname: " + petname);

                    int birthday = read.nextInt();
                    String species = read.next();
                    double bill = read.nextDouble();
                    String owner = read.next();
                    System.out.println("BirthDay" + birthday);
                    System.out.println("Name" + petname);
                    System.out.println("BIll" + bill);
                    System.out.println("Speci" + species);
                    System.out.println("Owner " + owner);
                }