java - 如何修复输入文件中的 NoSuchElementException?

标签 java java.util.scanner nosuchelementexception

我想知道是否有人可以帮助解决我的程序中的 NoSuchElements 异常,该程序扫描非常大的文本,然后将其添加到 ArrayList 中。

我尝试重新排列代码的顺序,看看是否可以修复它,但现在我不知道如何修复它。

<小时/>

异常本身:

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1478)
    at mainTest.main(mainTest.java:11)
<小时/>

主测试类:

import java.io.*;
import java.util.*;

public class mainTest {
    public static void main(String args[]) throws FileNotFoundException {
        ArrayList<String> bigBoi = new ArrayList<>(500000);

        Scanner scan1 = new Scanner(new File("LargeDataSet.txt"));

        while (scan1.hasNextLine()) {
            scan1.next();
            String data = scan1.next() + " " + scan1.next();
            bigBoi.add(data);
        }

        ArrayList<String> successful = new ArrayList<>(500000);
       }
    }
<小时/>

.txt 文件的单位: https://drive.google.com/file/d/1MWfMKMhSvuopOt9WwquABgYBTt0M4eLA/view?usp=sharing

(抱歉需要您从谷歌驱动器下载它,该文件太长了,如果我粘贴了 500,000 行,我可能会被报告或其他什么)

最佳答案

请使用scan1.hasNext()而不是scan1.hasNextLine()进行检查:

while (scan1.hasNext()) {
        scan1.next();
        String data = scan1.next() + " " + scan1.next();
        bigBoi.add(data);
}

关于java - 如何修复输入文件中的 NoSuchElementException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572917/

相关文章:

python - 使用 Chrome 时 Selenium "selenium.common.exceptions.NoSuchElementException"

java - 扫描仪读取数据文件 Java.Util.NoSuchElementException : Null

java - JDBC 语句顺序

java - 如何解决 FATAL : connection limit exceeded for non-superusers

java - 如何为 Java Mail 构建 HTML 模板

java - 在 Java 中从文件输入数据时如何阻止扫描仪更改字节?

java - 如何在不影响对象的情况下将对象作为参数传递给方法?

java - 扫描仪输入匹配异常

Java Scanner nextDouble 命令使用 switch case 跳过值?

java - 断言网络元素不存在 - 快速解决方案?