我有一个带分隔符的文本文件,如下所示。我试图逐个检索元素。
13年1月6日:下午4:00
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
答案 0 :(得分: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());
}
答案 1 :(得分:3)
您收到错误是因为在解析BookingMade.txt时找不到分隔符。
<强> NoSuchElementException异常强>
由枚举的nextElement方法抛出,表示枚举中没有更多元素。