21xrx.com
2025-04-26 00:52:10 Saturday
文章检索 我的文章 写文章
Java实现读取文件获取学生最高分和最低分
2023-06-14 20:41:24 深夜i     15     0
Java 文件读取 最高分 最低分 Map对象

Java是一门常用的编程语言,它不仅可以实现基本的计算和逻辑判断,还可以通过读取文件等操作实现更加复杂的功能。本文将详细介绍如何使用Java从文件中读取学生的成绩并获取最高分和最低分。

在实现前,我们首先要明确数据存放的方式。本文以文本文件的形式存放学生的成绩,每个学生的成绩格式为“姓名,分数1,分数2,…,分数n”,多个学生的成绩以换行符分割。

下面是Java代码实现的步骤:

1. 创建File对象,指定所要读取的文件路径和文件名。

2. 创建BufferedReader对象,将文件读取到内存中。

3. 使用String的split()方法将每行成绩按“,”拆分成数组。

4. 遍历数组,将姓名和成绩分别存储到Map对象中,其中姓名为Key,成绩为Value。

5. 遍历Map对象,获取最高分和最低分。

下面是示例代码:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Main {
  public static void main(String[] args) {
    // 创建File对象
    File file = new File("scores.txt");
    // 创建Map对象
    Map
  scoresMap = new HashMap<>();
 
    try {
      // 创建BufferedReader对象
      BufferedReader reader = new BufferedReader(new FileReader(file));
      // 读取文件并将成绩存储到Map对象中
      String line;
      while ((line = reader.readLine()) != null) {
        String[] parts = line.split(",");
        int sum = 0;
        for (int i = 1; i < parts.length; i++) {
          sum += Integer.parseInt(parts[i]);
        }
        scoresMap.put(parts[0], sum);
      }
      // 关闭BufferedReader对象
      reader.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
    // 获取最高分和最低分
    int maxScore = 0;
    int minScore = Integer.MAX_VALUE;
    String maxName = "";
    String minName = "";
    for (Map.Entry
  entry : scoresMap.entrySet()) {
 
      if (entry.getValue() > maxScore) {
        maxScore = entry.getValue();
        maxName = entry.getKey();
      }
      if (entry.getValue() < minScore) {
        minScore = entry.getValue();
        minName = entry.getKey();
      }
    }
    // 输出结果
    System.out.println("最高分:" + maxScore + ",姓名:" + maxName);
    System.out.println("最低分:" + minScore + ",姓名:" + minName);
  }
}

通过以上步骤,我们可以使用Java从文件中获取学生的最高分和最低分。

  
  

评论区

请求出错了