当前位置: 首页 > 知识库问答 >
问题:

Java:如何从中读取值。txt文件

云霖
2023-03-14

我正在编写一个程序,使用一个文件中的30个分数,计算出最低、最高和平均分数。我很难理解如何编写循环语句来读取每个等级并更新最低/最高等级,并在读取下一个等级之前将该值添加到总和。

import java.io.*;
import java.util.*;

public class MidtermStat {
    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(new FileReader("grades.txt"));
        int lowest = 50;
        int highest = 50;
        int sum = 0;

        int i;
        for (i = 0, i < 30, i++){
            if (grade < lowest)
                lowest = grade;
            if (grade > highest)
                highest = grade;
        }

        double average = sum / 30;

        System.out.println("The average score is: " + average);
        System.out.println("The highest score is: " + highest);
        System.out.println("The lowest score is: " + lowest);

        in.close();
    }
}

谢谢想出来了:

import java.io.*;
import java.util.*;

public class MidtermStat {
    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(new FileReader("grades.txt"));
        int lowest = 50;
        int highest = 50;
        int sum = 0;

        int i;
        for (i = 0; i < 30; i++){
            int grade = in.nextInt();
            if (grade < lowest)
                lowest = grade;
            if (grade > highest)
                highest = grade;
            sum += grade;
        }

        double average = (sum / 30.0);

        System.out.println("The average score is: " + (int)(average * 100) / 100.0);
        System.out.println("The highest score is: " + highest);
        System.out.println("The lowest score is: " + lowest);

        in.close();
    }
}

共有3个答案

江永安
2023-03-14

如果您的文件包含浮点值,请使用此选项

而(b=in.hasNextFloat())

    {
        s = s1.nextFloat();
        sum += s;
    }

请记住,如果您从文件中获取输入,那么最好使用BufferdReader,因为文件保存在磁盘中,与我们的程序相比,速度较慢。因此,在读取文件时,最好使用一些低级流。有关更多详细信息,请参阅:

http://docs.oracle.com/javase/tutorial/essential/io/buffers.html

金毅
2023-03-14

我建议你选择缓冲阅读器。

对于eg

BufferedReader br = new BufferedReader(new FileReader("FilePath"))

上面的语句将给您带来异常,您需要处理它。

while ((Line = br.readLine()) != null) {
// your statements..
}

快乐编码

欧阳衡
2023-03-14

这样做:

 for(i=0;i<30;i++){
       **float grade = in.nextFloat();**
       if(grade<lowest) lowest = grade;
       else if(grade>highest) highest = grade;

       sum+=grade;

    }

不要忘记更改您用于“浮动”以获得精度的每个“int”。

 类似资料:
  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍

  • 我正试图编写一个程序,读取网络中相互交互的节点列表。它以以下格式写入文本文件: 这表示节点1与节点2和节点3交互,节点2仅与节点3交互,等等。 该程序将能够读取该文件,并将删除任何重复的交互,并且如果我输入节点的名称,将能够向我返回节点与其他节点的交互次数。然而,我对Java非常陌生,我首先尝试让它读入文件,尽管我的代码目前没有读入文件。以下是我迄今为止的代码: 任何关于如何解决此问题的帮助都将不

  • 我是c语言的新手。我只有一些基本的知识,比如复制和粘贴。这意味着我的c语言不好。对不起我的英语。现在是我的问题。我有一个记事本。txt文件。它包含一些参数和我从其他程序获得的值。 对此的描述。txt文件:[单位可选]name\u of\u参数=值 便条簿。txt文件: 没有机会获得此输出的其他样式(.txt文件)。 除此之外,我还有一个带有随机行和列的excel工作表。第一行是\u参数的名称,如-

  • 问题内容: 请看下面的代码 在这里,首先获取文件的字节,然后将其写入文本文件。然后,我阅读了该文本文件,逐行阅读,并为每一行生成了一个单独的.txt文件。现在,原始程序被拆分为数千个文件。现在,我需要阅读所有.txt文件并重新生成.txt文件。我不知道怎么做最后一件事。我怎样才能做到这一点?请帮忙! 问题答案: 如果要操作任何类型的文件,请不要认为它们包含文本数据,而应将它们视为包含字节的二进制文

  • 问题内容: 我会尽量保持清楚,但如果我的问题不完美,请原谅我。我有一个包含多行数据的txt文件。例: 123拉尔夫·玻色20000 200 1 2 256 ed shane 30000 100 2 4 … 我需要按顺序读取每一行,并将其传递回单独类中的方法进行处理。我知道如何通过使用StringTokenizer将每一行分解为元素。 但是,我不确定如何一次读取一行,将元素传递回另一类,然后在完成处

  • 所以,我试图让我的程序从文本文件中读入一个结构数组,它编译得很好,但看起来并没有真正读入值?...我不知道为什么。这是代码的相关部分: 这是txt文件(标题:Planets.txt) 水星120 50 500 12.1 30 2金星120 50 500 29.1 30 6地球120 50 500 32.2 30 7月亮120 15 50 5.3 30 2火星120 50 500 12.2 30 4