gpt4 book ai didi

java - 我无法读取 .txt 中的所有数字

转载 作者:行者123 更新时间:2023-11-29 10:08:27 25 4
gpt4 key购买 nike

我试图计算一个包含 1000 万个数字的文件的平均值,每行一个数字。我创建了一个名为 getAverage() 的方法,它返回一个 double 值。这是代码:

public double promedioDouble() throws IOException
{
double adder = 0;
int counter = 0;
try{
file = new FileReader(filePath);
reader = new BufferedReader(file);
while(reader.readLine()!=null)
{
adder+=Double.parseDouble(reader.readLine());
counter++;
}

}
catch (IOException e)
{
System.out.println("cant read");
}
finally {
if (file != null) file.close();
}
return adder/counter;
}

我打印了计数器,它显示了 5.000.000,我不知道为什么读者无法读取文件中包含的 1000 万数字,它只读取了一半。我需要这方面的帮助。

最佳答案

您调用了两次 readLine - 并忽略了在 while 条件下返回的行。

试试看:

            String line;
while( (line = reader.readLine()) !=null)
{
adder+=Double.parseDouble(line);
counter++;
}

您也可以使用 Streams 执行此操作(并使用 try-with-resources - 避免需要 finally):

    try (Stream<String> stream = Files.lines(Paths.get(fileName))) 
{
stream.forEach(s -> {adder+=Double.parseDouble(s); counter++;});

} catch (IOException e) {
e.printStackTrace();
}

关于java - 我无法读取 .txt 中的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58423593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com