2015-11-14 54 views
1

假設我有一個簡單的文本文件Simple.txt包含這樣閱讀並從Java中的文件計算整數的總和

 
1 2 3 4 5 6  

 
1 
2 
3 
4 
5  

如何看這個數據文件並使用Java打印整數的總和?

+0

使用'Scanner'改變。迭代你的數據while''hasNextInt()'並得到'nextInt()'。 – Pshemo

+0

谷歌圍繞'掃描儀'和'下一步' –

+0

http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java,然後通過數組循環 – JRsz

回答

0

試試看看這個代碼。

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

public class SumNumbers { 

public static void main(String args[]){ 
    try{ 
     File f = new File(args[0]); 
     Scanner scanner = new Scanner(f); 
     int sum = 0; 
     while (scanner.hasNext()){ 
      sum += scanner.nextInt(); 
     } 
     System.out.println("Sum:"+sum); 
    }catch(Exception err){ 
     err.printStackTrace(); 
    } 

} 
} 

編輯:如果你想趕上在文件中不正確的輸入,你可以在循環如下

  while (scanner.hasNext()){ 
      int num = 0; 
      try{ 
       num = Integer.parseInt(scanner.nextLine()); 
      }catch(NumberFormatException ne){ 

      } 
      sum += num; 
     } 
+1

不,請不要使用try-catch來處理不正確的輸入類型。掃描儀允許我們使用'hasNextTYPE',因此可以使用它。在不正確類型的情況下,簡單地調用'has ...',並用'next'或'nextLine'消耗那個不正確的值(如果我們想在不正確的值之後消耗所有的值)。 – Pshemo

+0

您應該至少在嘗試訪問其元素之前檢查'args'的長度;不要依賴用戶提供正確的命令行參數。 – Jubobs

0

試試這個。

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("Simple.txt")); 

     filereader(textfile); 
} 


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

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

爲什麼while(i <= 4) ?我想讀取到文件的最後,而不是在任何特定的條件。 –

+0

你必須使用'while(textfile.hasNextLine())' – Saedawke

+0

是的,現在是好的 –

相關問題