繁体   English   中英

Java:如何从.txt文件读取值

[英]Java: How to read values from .txt file

我正在编写一个程序,该程序使用文件中的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();
    }
}

我建议你去读缓冲的读者。

例如

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

上面的声明会给您例外,您需要处理它。

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

快乐编码

做这样的事情:

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

       sum+=grade;

    }

不要忘记为了精度而将过去使用的每个“ int”更改为“ float”。

如果文件包含浮点值,请使用此

而(b = in.hasNextFloat())

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM