-3

我有一个带分隔符的文本文件,如下所示。我正在尝试逐个检索元素 1。

01/06/13:4pm

3:2

6:3

当下面的代码被激活时,我没有从程序中得到这样的元素异常。

  BufferedReader br = new BufferedReader(new FileReader("BookingMade.txt"));     

 if (br.readLine() != null) {

 Scanner s = new Scanner(br).useDelimiter(":");
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 }
  br.close();

输出变成

0

3

2

6

3

4

2 回答 2

5

您的问题不清楚,但这里有一个问题:在这一行中,您正在跳过文件的第一行:

if (br.readLine() != null) {

在此之后,只有 4 个令牌可用,但您正试图读取 6 个,因此NoSuchElementException会抛出 。

您可以使用以下方法检查可用令牌hasNext

Scanner s = new Scanner(new File("BookingMade.txt")).useDelimiter(":");
while (s.hasNext()) {
   System.out.println(s.next());
}
于 2013-04-26T16:51:50.150 回答
3

您收到错误是因为在解析 BookingMade.txt 时不再找到分隔符。

NoSuchElementException

由 Enumeration 的 nextElement 方法引发,以指示枚举中没有更多元素。

在此处输入图像描述

于 2013-04-26T16:50:13.220 回答