Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文本文件分隔的java NoTouchElement异常_Java - Fatal编程技术网

文本文件分隔的java NoTouchElement异常

文本文件分隔的java NoTouchElement异常,java,Java,我有一个带分隔符的文本文件,如下所示。我正在尝试逐个检索元素1 01/06/13:4下午 3:2 6:3 当下面的代码被激活时,我从程序中得到了一个无此类元素的异常 输出变为 0 三, 二, 六, 三, 出现错误是因为在分析BookingMake.txt时不再找到分隔符 无接触元素异常 由枚举的nextElement方法引发,以指示枚举中没有其他元素 您的问题不清楚,但有一个问题:您在这一行跳过了文件的第一行: if (br.readLine() != null) { 在此之后,只有4个令牌可

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

01/06/13:4下午

3:2

6:3

当下面的代码被激活时,我从程序中得到了一个无此类元素的异常

输出变为

0

三,

二,

六,

三,


出现错误是因为在分析BookingMake.txt时不再找到分隔符

无接触元素异常

由枚举的nextElement方法引发,以指示枚举中没有其他元素


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

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());
}

你的问题是?嗨。我正在试图找出为什么我会出现异常错误。对于这个不清楚的问题,我很抱歉。我已经写了一个更清晰的版本问题,但无法发布,我重写了它。嗨,对于br.readline,我试图检查文件是否为空。我试图检索元素1乘1,因为我试图打印一些句子和元素。这就是为什么我没有使用while循环。很抱歉,我不知道我的br.readline正在跳过第1行。由于我搜索了很长一段时间,但我只能找到检查空文本文件的解决方案。您根本不需要使用BufferedReader。扫描仪有下一个方法来检查是否有可用的内容。如果您不想使用while look,那么您可以将此功能抽象为一个单独的方法,例如
getNextAvailableToken
非常感谢。我终于看到了日期和时间。我可以问一下,getnextavailabletoken是否在scanner类中?我似乎在api中找不到它。非常感谢。这张图片对我理解我的错误有很大帮助。
Scanner s = new Scanner(new File("BookingMade.txt")).useDelimiter(":");
while (s.hasNext()) {
   System.out.println(s.next());
}