Ryan Christman Ryan Christman - 15 days ago 7
Java Question

Read Data From Text File And Sum Numbers

I want to read in data from a text file which is full of integers and have the program print those integers out to the screen while summing them. This shouldn't be hard, but I can't figure it out!!!

Here is the extremely simplified text file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


And here is my code that is supposed to work:

import java.util.*;
import java.io.File;
import java.io.IOException;

public class ReadFile
{
public static void main(String[] args)
throws IOException
{
Scanner textfile = new Scanner(new File("Some_Numbers.txt"));

filereader(textfile);
}


static void filereader(Scanner textfile)
{
int i = 0;
int sum = 0;

while(i <= 19)
{
System.out.println(textfile.nextInt());
sum = sum + textfile.nextInt();
i++;
}
}



}


Finally, here is the output I get:

1
3
5
7
9
11
13
15
17
19
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at ReadFile.filereader(ReadFile.java:23)
at ReadFile.main(ReadFile.java:12)

Answer

You are calling textfile.nextInt() twice in the loop. Try:

static void filereader(Scanner textfile)     
{         
    int i = 0;         
    int sum = 0;          
    while(i <= 19)         
    {       
        int nextInt = textfile.nextInt();          

        System.out.println(nextInt);             
        sum = sum + nextInt;
        i++;         
    }     
}
Comments