Java 将文件中的数字相加

Java 将文件中的数字相加,java,java.util.scanner,Java,Java.util.scanner,我试图从文件中读入整数,然后显示它们并将它们相加,然后显示总数。但是,我的代码不起作用,sum+=scan.nextInt()正在导致错误。有人能帮我吗 import java.util.Scanner; import java.io.File; public class HandlingExceptions { public static void main(String[] args) throws Exception { int sum = 0; File number

我试图从文件中读入整数,然后显示它们并将它们相加,然后显示总数。但是,我的代码不起作用,
sum+=scan.nextInt()正在导致错误。有人能帮我吗

import java.util.Scanner;
import java.io.File;
public class HandlingExceptions {

public static void main(String[] args) throws Exception {
    int sum = 0;

    File numbersFile = new File("numbers.txt");

    Scanner scan = new Scanner(numbersFile);

    while(scan.hasNextInt()){
        System.out.println(scan.nextInt());
        sum += scan.nextInt();
    }

    System.out.println(sum);

    scan.close();
    }

}
控制台在运行时显示以下内容:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at HandlingExceptions.main(HandlingExceptions.java:20)

此代码有问题,因为您正在使用一个数字进行打印,另一个用于添加。另一个问题是,如果扫描仪中有奇数,则会遇到

将其更改为:

while(scan.hasNextInt()){
    int tempInt = scan.nextInt();
    System.out.println(tempInt);
    sum += tempInt;
}

编辑问题以回答此问题。在循环中调用nextInt()两次-当到达最后一个元素时,将其打印出来,但当再次调用nextInt时,将显示非左。相反,如果您想打印出来,您应该复制一个整数,打印它,然后添加它。
while(scan.hasNextInt()){
    int tempInt = scan.nextInt();
    System.out.println(tempInt);
    sum += tempInt;
}