第一次在这里发帖,如果格式有问题,我会尝试修复它。无论如何,所以当我尝试运行我的驱动程序时,我一直在 java 中遇到这个错误。该程序的目标是写入然后从文件中读取,我写入文件很好,现在我试图从中读取,这是错误:
未报告的异常 EmptyFileException;必须被抓住或宣布被扔掉
大学 ufl = University.readFromFile("university.txt");
//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;
}
}
我的 EmptyFileException 的代码是
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) {
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);
}
}
}
任何帮助,将不胜感激。如果不清楚,前两个文件编译得很好,只有驱动程序不会编译(这是我老师给我的)。
更新
添加了该throws
子句并编译了,并没有改变我老师给我的代码。
但是现在我不断收到此错误:
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 University.readFromFile(University.java:174)
at TestDriver2.main(TestDriver2.java:8)