java:NoSuchElementException:读取到arrayList

时间:2016-04-14 04:44:34

标签: java arraylist

抱歉,如果我的格式是垃圾。 我正在尝试向arrayList添加2个字符串和一个布尔值来执行以下操作。

while((in.hasNextLine())){
    list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));
    }

我一直没有得到这样的元素异常。如果我像这样采取while循环

list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));

它运行正常,但我只能添加文本文件的第一行。 循环或扫描仪有问题吗?

try {
        in = new Scanner(f1);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    while((in.hasNextLine())){
    list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));
    }

f1声明为File f1 = new File(“src / mylist.txt”);

任何帮助都会很棒!谢谢!

1 个答案:

答案 0 :(得分:1)

NoSuchElementException中的in.next()抛出了{p> list.add(new Task(in.next(),in.next(), in.hasNextBoolean()))个异常。

in.next(),如果您不使用Pattern中的任何Scanner来匹配下一个令牌。它将使用默认Pattern private static Pattern FIND_ANY_PATTERN = Pattern.compile("(?s).*")来匹配整行。它会导致in.next()读取整行。

所以list.add(new Task(in.next(),in.next(), in.hasNextBoolean()))会抛出NoSuchElementException,你已经阅读了两次,但你只检查了一次。