2016-03-30 9 views
0

私はscores.txtファイルに平均20個の数値を取得しようとしていますが、どうやってそれを行うのか分かりません。私が試してみるたびに、私の出力はすべて台無しになる。思考?BufferedReaderで読み取った数値を加算する

public static void main(String[] args) throws IOException, 
    FileNotFoundException { 

    String file ="/Users/vienna01pd2016/Desktop/scores/src/scores/scores.txt"; 
    processFile("/Users/vienna01pd2016/Desktop/scores/src/scores/scores.txt"); 
    //calls method processFile 
    } 


    public static void processFile (String file) 
    throws IOException, FileNotFoundException{ 
    String line; 
    //lines is declared as a string 


    BufferedReader inputReader = 
     new BufferedReader (new InputStreamReader 
(new FileInputStream(file))); 

    while ((line = inputReader.readLine()) != null){ 

     //System.out.println(line); 
     double Value = Double.parseDouble(line); 
    System.out.println(Value); 
+0

何が意味するのですか?あなたはプログラムとファイル入力の出力を投稿できますか? – Harshit

+0

これは私が受け取っている出力です... 0 1 スレッド "main"の例外java.lang.RuntimeException:コンパイル不可能なソースコード - BigInteger(long)がプライベートアクセスを持っていますbigintegerfactorial.BigIntegerFactorial.factorialでjava.math.BigIntegerの \t(BigIntegerFactorial.java:38)bigintegerfactorial.BigIntegerFactorial.mainで \t(BigIntegerFactorial.java:15) /Users/vienna01pd2016/Library/Caches/NetBeans/8.1/でexecuter-snippets/run.xml:53:Javaが返されました:1 BUILD FAILED(合計時間:10秒 –

+0

は出力ではなくEXCEPTIONです) BigIntegerFactorial.java:38これは問題がどこにあるかを示します。 BigIntegerFactorial.java – Harshit

答えて

0

あなたが各行に1つの番号を持っている場合は、私は、BufferedReaderのを使用して、それぞれの行を読ま番号に追加するだけでなく、リストにそれを置くでしょう、そしてあなたは数字の分だけ合計を分割することができますリストにある:

package Testers; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.IOException; 
import java.io.FileReader; 
import java.util.ArrayList; 

public class MeanGetter { 

    public static ArrayList<Double> ls = new ArrayList<Double>(); 

    public static void main(String[] args){ 
     String filepath = "/Users/vienna01pd2016/Desktop/scores/src/scores/scores.txt"; 
     double total = processFile(/*new File(filepath).getAbsolutePath()*/ filepath); 
     double mean = total/ls.size(); 
     System.out.println("mean: " + mean); 
    } 

    private static double processFile(String path) { 
     double n = 0; 
     try { 
      BufferedReader reader = new BufferedReader(new FileReader(new File(path))); 
      String line; 
      while ((line = reader.readLine()) != null){ 
       double d = Double.parseDouble(line); 
       n = n + d; 
       ls.add(d); 
      } 
      reader.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return 0; 


    } 

} 
+0

あなたのアプリケーションがscores.txtと同じ場所で実行されている場合、 'new File(scores.txt).getAbsolutePath();' – JD9999

関連する問題