我试图在Java中读取这样的文本文件(参见下面的代码)。
在文本文件中阅读时的预期行为是:
lesson
时,它会将INF999,Java,30添加到Lesson对象student
时,会将XXX名称前50位4添加到学生对象registration
时,会将XXX和INF999添加到注册对象以下是代码:
// test.txt
[lesson] INF999 Java 30
[student] XXX name first 50 4
[registration] XXX INF999
// readFile method
public void readFile(String path) {
try {
FileInputStream fstream = new FileInputStream(path);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String ligne;
while ((ligne = br.readLine()) != null) {
String[] words = ligne.split(" ");
if (words[0].equals("[lesson]")) {
String acronym = words[1];
String name = words[2];
int nbMaxStudents = Integer.parseInt(words[3]);
addLesson(new Lesson(acronym, name, nbMaxStudents));
} else if (words[0].equals("[student]")) {
// same thing
} else if (words[0].equals("[registration]")) {
// same thing
} else { throw new Exception(); }
}
br.close();
} catch (Exception e) { System.out.println("error"); }
}
在我的main
方法中,我把它放在:
Programme programme = new Programme(numProgramme);
programme.readFile("test.txt");
我不知道为什么,但这次执行总会导致错误。你能帮我吗?
答案 0 :(得分:0)
试
Programme programme = new Programme(numProgramme);
programme.readFile("src/test.txt");
答案 1 :(得分:0)
除了错误之外,你提到了,注册没有案件处理..所以它进入了else块。
这是在这行代码
else { throw new Exception(); }
并为注册提出例外,即when words[0].equals("[registration]")