Java 从多个txt文件读取整数并添加值

Java 从多个txt文件读取整数并添加值,java,file,loops,while-loop,Java,File,Loops,While Loop,我刚刚熟悉从txt文件中读取数据,在这篇文章中,我必须从大约3个txt文件中读取数据,每个文件包含3个整数,然后将这些值相加。(我在其中放置了一个while循环,其中第4个文件称为零,这就是循环结束的地方,这样我就可以简单地理解它是如何工作的) 我必须使用while循环,因此我认为如果我使用第一个while循环文件名,那么我可以使用第二个while来读取文件while(x.hasNextInt()) 我使用了一个sum变量作为int的和(每个文本文件中有3个) 这是我一直得到的: Please

我刚刚熟悉从txt文件中读取数据,在这篇文章中,我必须从大约3个txt文件中读取数据,每个文件包含3个整数,然后将这些值相加。(我在其中放置了一个while循环,其中第4个文件称为零,这就是循环结束的地方,这样我就可以简单地理解它是如何工作的)

我必须使用while循环,因此我认为如果我使用第一个while循环文件名,那么我可以使用第二个while来读取文件while(x.hasNextInt())

我使用了一个sum变量作为int的和(每个文本文件中有3个)

这是我一直得到的:

Please enter file name: 
n1
Reading from n1. The numbers are: 1 0 4 .The total is 5
 Please enter file name: 
n1
 Please enter file name: 
n2
 Please enter file name: 

我做错了什么?

您忘记在完成第一次迭代后将
x
设置为新扫描仪。因此,x.hasNextInt()不能为true,因为原始文件中没有可读取的整数

更改此项:

try
{
    x = new Scanner(new File(FileName+".txt")); 

    while(!FileName.equals("zero"))
    {
        while(x.hasNextInt())
        {
            % code here
        }
    }

}
进入


好的,你在调试器中一步一步地完成了代码吗?谢谢,我真的很感激。代码是有效的,我知道我在哪里犯了错误。
            sum=sum+a+b+c;
            System.out.printf("Reading from "+ FileName+". The numbers are: "+a+" "+b+" "+c+" .The total is "+sum);
        }

        System.out.println("\n Please enter file name: ");  
        FileName = sc.next();
    }

}   

catch (FileNotFoundException fnf)
{
   System.out.println(fnf.getMessage());
}

sc.close();
x.close();
}
Please enter file name: 
n1
Reading from n1. The numbers are: 1 0 4 .The total is 5
 Please enter file name: 
n1
 Please enter file name: 
n2
 Please enter file name: 
try
{
    x = new Scanner(new File(FileName+".txt")); 

    while(!FileName.equals("zero"))
    {
        while(x.hasNextInt())
        {
            % code here
        }
    }

}
try{

    while(!FileName.equals("zero"))
    {
        x = new Scanner(new File(FileName+".txt")); % Scanner declaration shifted here  
        while(x.hasNextInt())
        {
            % code here
        }
    }

}