Java 将使用BufferedReader读取的数字相加

Java 将使用BufferedReader读取的数字相加,java,bufferedreader,Java,Bufferedreader,我试图在我的scores.txt文件中得到20个数字的平均值,但我不知道怎么做。每次我尝试,我的输出都会被搞砸。想法 public static void main(String[] args) throws IOException, FileNotFoundException { String file ="/Users/vienna01pd2016/Desktop/scores/src/scores/scores.txt"; processFile("/Us

我试图在我的scores.txt文件中得到20个数字的平均值,但我不知道怎么做。每次我尝试,我的输出都会被搞砸。想法

    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);

如果每一行上都有一个数字,我会使用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;


    }

}
包装测试仪;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.IOException;
导入java.io.FileReader;
导入java.util.ArrayList;
公众阶级的有意义的人{
公共静态ArrayList ls=新ArrayList();
公共静态void main(字符串[]args){
字符串filepath=“/Users/vienna01pd2016/Desktop/scores/src/scores/scores.txt”;
double total=processFile(/*新文件(filepath).getAbsolutePath()*/filepath);
双平均值=总/ls.size();
System.out.println(“平均值:“+平均值”);
}
私有静态双进程文件(字符串路径){
双n=0;
试一试{
BufferedReader=new BufferedReader(new FileReader(new File(path)));
弦线;
而((line=reader.readLine())!=null){
双d=double.parseDouble(行);
n=n+d;
ls.加入(d);
}
reader.close();
}捕获(IOE异常){
e、 printStackTrace();
}
返回0;
}
}

混乱是什么意思?你能发布程序的输出和文件输入吗?这是我收到的输出…线程“main”java.lang.RuntimeException中的0 1异常:不可编译的源代码-BigInteger(long)在BigIntegerFactory.BigIntegerFactory.factorial(BigIntegerFactory.java:38)的java.math.BigInteger中具有私有访问权限在bigIntegerFactory.bigIntegerFactory.main(bigIntegerFactory.java:15)/Users/vienna01pd2016/Library/Caches/NetBeans/8.1/executor snippets/run.xml:53:java返回:1生成失败(总时间:10秒表示异常,而不是输出。BigIntegerFactory.java:38这显示了问题所在,请检查BigIntegerFactory.java的第38行。值得一提的是,如果您的应用程序在与scores.txt相同的位置运行,您只需执行
新建文件(scores.txt)。getAbsolutePath();