我随机生成了一个介于1到100之间的50个数字的列表,并将其写入了新文件。我将如何读取文件并计算所有数字的总和和平均值?
import java.util.*;
import java.io.*;
import java.io.FileWriter;
import java.io.PrintWriter;
public class Lab5Part2{
public static void main(String [] args)throws IOException
{
FileOutputStream fo = null;
PrintWriter out = null;
File file = new File("outwrite.txt");
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
Random rand = new Random();
int number, count=0, countTwo=0;
while(count < 50)
{
while(countTwo < 50)
{
number=rand.nextInt(100)+1;
pw.println(number);
count++;
countTwo++;
}
}
pw.close();
}
}
这里是一种解决方案:
var stream = Files.lines(Path.of("outwrite.txt"))
.map(String::trim)
.filter(s -> !s.isEmpty())
.mapToInt(Integer::parseInt);
int sum = stream.sum();
double average = stream.average().getAsDouble();
请注意,我假设文件的每一行仅包含有效数字,否则代码将无法正常工作。