2013-01-10 51 views
0

我有一个ArrayList &我希望它在&总人数的文件中读取,但它仅在文件中输出的最后一个数字,他们都在不同的行等的ArrayList不读正确

Here is my code, thanks in advance: 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class ArrayListOfNumbers { 
    public static void main(String[] args) throws FileNotFoundException { 

     ArrayList<Integer> list = new ArrayList<Integer>(); 
     list.add(1); 
     Scanner Scan = new Scanner (new File("numbers.txt")); 

     int sumOf = 0; 
     for(int i=0; i < list.size(); i++){ 
      sumOf = sumOf + list.get(i); 
     } 
     //while scanning add sum to ArrayList List 
     while (Scan.hasNext()) 
     { 
      sumOf = Scan.nextInt(); 
      list.add(sumOf); 
     } 
     //print the array list 
     System.out.println(sumOf); 
     Scan.close(); 
    } 
} 

回答

1

您正在打印sumOf不在列表中。当然,这是一个单一的数字。

此外,你应该在总结他们之前阅读数字。

3

在阅读数字之前,您正在总结列表中的数字。通过线

//while scanning add sum to ArrayList List 
    while (Scan.hasNext()) 
    { 
     int number = Scan.nextInt(); 
     list.add(number); 
    } 
    int sumOf = 0; 
    for(int i=0; i < list.size(); i++){ 
     sumOf = sumOf + list.get(i); 
    } 
0

读线,适当命名变量:

所以将你的循环是这样的。从文件读取之后,迭代列表并求和。

while (scanner.hasNextLine()) { 
    String line = scanner.nextLine(); 
    System.out.println(line); 
}