import java.io.*;
import java.util.ArrayList;
import java.util.List;

class Student {
    private String name;
    private String gender;
    private int age;
    private int score;

    public Student() {}

    public Student(String name, String gender, int age, int score) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.score = score;
    }

    // getter/setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getGender() { return gender; }
    public void setGender(String gender) { this.gender = gender; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public int getScore() { return score; }
    public void setScore(int score) { this.score = score; }
}

public class Main {
    public static void main(String[] args) {
        // 初始化学员集合
        List<Student> stuList = new ArrayList<>();
        stuList.add(new Student('迪丽热巴','女',18,99));
        stuList.add(new Student('古力娜扎','女',19,98));
        stuList.add(new Student('周杰伦','男',20,88));
        stuList.add(new Student('蔡徐坤','男',19,78));

        // 写入文件
        try (FileWriter writer = new FileWriter('a.txt')) {
            for (Student stu : stuList) {
                writer.write(stu.getName() + ',' + stu.getGender() + ',' + stu.getAge() + ',' + stu.getScore() + '\n');
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 读取文件
        try (FileReader reader = new FileReader('a.txt');
             BufferedReader br = new BufferedReader(reader)) {
            String line;
            while ((line = br.readLine()) != null) {
                String[] fields = line.split(',');
                Student stu = new Student(fields[0], fields[1], Integer.parseInt(fields[2]), Integer.parseInt(fields[3]));
                stuList.add(stu);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 输出学员信息
        for (Student stu : stuList) {
            System.out.println(stu.getName() + ' ' + stu.getGender() + ' ' + stu.getAge() + ' ' + stu.getScore());
        }

        // 计算平均分数
        double sum = 0;
        for (Student stu : stuList) {
            sum += stu.getScore();
        }
        double avg = sum / stuList.size();
        System.out.println('平均分数:' + avg);
    }
}

该程序实现了以下功能:

  1. 创建学生类: 定义一个名为 Student 的类,包含 name、gender、age 和 score 属性,并提供构造方法和 getter/setter 方法。
  2. 初始化学生集合: 在 main 方法中创建一个 ArrayList 存储 Student 对象,并初始化一些学生数据。
  3. 写入学生信息到文件: 使用 FileWriter 将学生信息写入 a.txt 文件,每个学生信息占一行,字段之间用逗号分隔。
  4. 从文件读取学生信息: 使用 FileReader 和 BufferedReader 读取 a.txt 文件,将每行信息解析成 Student 对象并添加到学生集合中。
  5. 输出学生信息: 遍历学生集合,输出每个学生的姓名、性别、年龄和分数。
  6. 计算平均分数: 遍历学生集合,计算所有学生的平均分数并输出。

使用说明:

  1. 运行程序,程序会将学生信息写入 a.txt 文件,然后从文件读取学生信息,并输出所有学生的详细信息和平均分数。
  2. 可以在程序中修改学生数据,然后重新运行程序,以测试程序功能。

注意事项:

  1. 程序中使用了 try-with-resources 语句,确保文件在使用完后自动关闭,避免资源泄露。
  2. 程序使用了 BufferedReader 来提高读取文件的效率。
  3. 程序中使用了 ArrayList 存储学生对象,可以方便地添加和删除学生信息。
  4. 程序中使用了 double 类型存储平均分数,以保证计算精度。

拓展:

  1. 可以添加更多功能,例如:添加、删除、修改学生信息。
  2. 可以将程序封装成一个独立的类库,方便在其他项目中使用。
  3. 可以使用图形界面来提高程序的用户体验。

本程序是一个简单的学生信息管理系统示例,可以作为学习 Java 文件读写操作和集合使用的参考。

希望本程序能对您有所帮助。


原文地址: https://www.cveoy.top/t/topic/ok5N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录