Java 将使用BufferedReader读取的数字相加
我试图在我的scores.txt文件中得到20个数字的平均值,但我不知道怎么做。每次我尝试,我的输出都会被搞砸。想法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
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();