假定一个文本文件中包含未指定个数的分数,用空格分开。编写一个Java程序,提示用户输入文件名称,然后从文件中读入分数,斌且显示它们的和和平均值。
时间: 2024-03-03 14:48:36 浏览: 64
java实现合并2个文件中的内容到新文件中
好的,我可以帮你解决这个问题。以下是一个Java程序的示例代码,它可以读取指定文件中的分数,计算它们的总和和平均值,并将结果输出到控制台。你可以将此代码复制到你的Java开发环境中,然后进行编译和运行。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ScoreCalculator {
public static void main(String[] args) {
// 提示用户输入文件名
System.out.print("请输入包含分数的文件名:");
String fileName = System.console().readLine();
// 读取文件中的分数
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
int sum = 0;
int count = 0;
while ((line = br.readLine()) != null) {
String[] scores = line.trim().split("\\s+");
for (String score : scores) {
sum += Integer.parseInt(score);
count++;
}
}
double average = (double) sum / count;
System.out.printf("分数总和为:%d,平均分为:%.2f\n", sum, average);
} catch (IOException e) {
System.err.println("读取文件时出现错误:" + e.getMessage());
} catch (NumberFormatException e) {
System.err.println("文件中包含非法分数:" + e.getMessage());
}
}
}
```
在上面的程序中,我们首先提示用户输入包含分数的文件名。然后,我们使用Java的输入输出流来读取文件中的内容。在读取过程中,我们将每一行分割成分数,然后将它们累加到变量`sum`中,并记录分数的个数。最后,我们计算分数的平均值,并将结果输出到控制台。
请注意,在读取文件时,我们使用了Java 7中引入的“try-with-resources”语句。这样可以确保文件在使用完毕后被正确地关闭,避免资源泄漏。
阅读全文