创建一个名为 processFile 的方法,并从 main 中调用它,传递您创建的文件的名称(“scores.rtf”)。在 processFile 中,设置 BufferedReader 并循环遍历文件,读取每个分数。将分数转换为整数,将它们相加,计算并显示平均值。我已经这样做了,并且我的代码运行了。唯一的问题是我的代码没有计算平均值。知道为什么吗?
这是我生成的代码:
import java.io.*;
public class ReadTheCode {
private static double total = 0;
private static int totalLines = 0;
public static void main(String[] args) throws IOException, FileNotFoundException {
String pathToFile = "scores.rtf";
processFile(pathToFile);
}
public static void processFile(String pathToFile) throws IOException, FileNotFoundException {
try(BufferedReader br = new BufferedReader(new FileReader(pathToFile))){
BufferedReader inputReader = new BufferedReader(new InputStreamReader(new FileInputStream(pathToFile)));
String line = br.readLine();
while (line != null) {
double value = Double.parseDouble(line);
total = value + total;
totalLines = totalLines + 1;
System.out.println(value + "%");
line = br.readLine();
}
inputReader.close();
}
}
}
最佳答案
在您的主要方法中,我相信您打算这样做。
String pathToFile = "Scores.txt";
注意它有引号。这使其成为字符串文字。
也在您的 processFile 方法中,
更改此行BufferedReader inputReader = new BufferedReader(new InputStreamReader(new FileInputStream(Scores.txt)));
至
BufferedReader inputReader = new BufferedReader(new InputStreamReader(new FileInputStream(pathToFile)));
这样您就可以引用从主方法传递的参数。
我还注意到您引用了 2 个尚未在任何地方声明的变量。 Total
和 TotalLines
,所以我不确定您是否已向我们展示了所有代码。如果您已向我们展示了所有代码,请确保在某处声明这些变量。您只需将其添加到您的公共(public)类 ReadTheCode {
这将声明并初始化变量。它还将使它们静态,以便您可以在静态方法中访问它们。不过,我建议您研究一下 Java 命名约定,因为变量应以小写字母开头。
private static double Total = 0;
private static int TotalLines = 0;
关于java - 从文件中读取成绩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40806525/