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