运行驱动程序时线程“main”中的异常java.util.InputMismatchException错误

时间:2012-11-08 02:22:58

标签: java exception

我的代码全部编译但运行驱动程序时出现错误。错误是

主题“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 University.readFromFile(University.java:174)
    at TestDriver2.main(TestDriver2.java:8)

我的代码是:

//read from file
public static University readFromFile(String filename) throws EmptyFileException {
File file = new File(filename);
University university = null;
Scanner in = null;
try {
    in = new Scanner(file);
    String str = in.nextLine();
    Scanner in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    String uName = in2.next();

    //Read University info
    str = in.nextLine();
    in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    String uTerm = in2.next();
    str = in.nextLine();
    in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    int uYear = in2.nextInt();
    str = in.nextLine();
    in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    int uNumStudents = in2.nextInt();
    str = in.nextLine();
    in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    int uNumInstructors = in2.nextInt();
    str = in.nextLine();
    in2 = new Scanner(str).useDelimiter(":");
    in2.next(); 
    int uNumCourses = in2.nextInt();

    //Create and read arrays of objects
    Student[] uStudents = new Student[uNumStudents];
    for(int i = 0; i < uNumStudents; i++)
                    uStudents[i] = readStudent(in);

    Instructor[] uInstructors = new Instructor[uNumInstructors];
    for(int i = 0; i < uNumInstructors; i++)
                    uInstructors[i] = readInstructor(in);

                //Create array of possible TAs to pass into readCourse method
                GradStudent[] gStudents = new GradStudent[uNumStudents];
                for(int j=0; j<uStudents.length; j++) {
                    for(int i=0; i<uStudents.length; i++) {
                        if(uStudents[i] instanceof GradStudent)
                            gStudents[j] = (GradStudent) uStudents[i];
                    }
                } 

    Course[] uCourses = new Course[uNumCourses];
    for(int i = 0; i < uNumCourses; i++)
                    uCourses[i] = readCourse(in, uInstructors, gStudents, uStudents);

    //Create University object
    university = new University(uName, uTerm, uYear, uStudents, uInstructors, uCourses);
    return university;

} catch (FileNotFoundException fe) {
    fe.printStackTrace();
    return null;
}

异常文件:

public class EmptyFileException extends Exception {
    String filename;
    EmptyFileException() { }

    EmptyFileException(String filename) {
        this.filename = filename;
    }

    public String toString() {
        return "The file " + filename + " is empty.";
    }
}

和司机:

public class TestDriver2 {

public static void main(String[] args) throws EmptyFileException {

    University ufl = University.readFromFile("university.txt");

            if (ufl != null) {
                System.out.println("\n--Printing out University info--");
                System.out.println(ufl);

                System.out.println("\n--Printing out Students info--");
                Student[] students = ufl.getStudents();
                for (Student s : students)
                        System.out.println("\n" + s);
            }
    }
}

0 个答案:

没有答案