-2

我正在尝试在 Java 中读取这样的文本文件(请参见下面的代码)。

读取文本文件时的预期行为是:

  1. 找到lesson时,将 INF999, Java, 30 添加到 Lesson 对象
  2. 当它找到student时,它将 XXX name first 50 4 添加到 Student 对象
  3. 找到registration后,将 XXX 和 INF999 添加到 Registration 对象

这是代码:

// 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");

我不知道为什么,但是这个执行总是会导致错误。请你帮助我好吗?

4

2 回答 2

0

除了错误之外,您还提到,注册没有案例处理..所以它进入了 else 块。

它在这行代码中

else { throw new Exception(); }

并为注册抛出异常,即when words[0].equals("[registration]")

于 2013-04-30T05:10:27.993 回答
0

尝试

Programme programme = new Programme(numProgramme);
programme.readFile("src/test.txt");
于 2013-04-30T05:00:44.483 回答