使用Java实现学生信息管理系统

一、Manager类的功能
Manager类是学生信息管理系统的核心类之一,它具有以下功能:

创建一个空的学生对象列表,并使用ArrayList来存储学生信息。
提供方法来添加新的学生信息,并为每个学生生成一个唯一的ID。
提供方法来查看学生信息列表。
提供方法来根据ID查找学生信息。
提供方法来修改学生信息。
提供方法来删除学生信息。
提供方法来根据名称模糊查询学生信息。
在文件处理时:

1.序列化是将对象转换为字节流的过程,可以将对象”保存“到文件中、在网络传输中发送对象等。
2.反序列化则是将字节流转换回对象,可以从文件中“读取”对象数据、接收网络传输的对象等。

需要注意的是,要进行反序列化,对象的类必须实现Serializable接口。该接口是一个标记接口,不包含任何方法,”只是用于标识该类可以被序列化和反序列化“。 

Manager代码: 

public class Manager {
    //文件处理
//    a. 创建一个空的Stu对象列表,使用ArrayList来存储。
//    b. 使用ObjectOutputStream类创建一个对象输出流,它使用FileOutputStream来写入文件数据。
//    c. 使用ObjectOutputStream的writeObject()方法将对象列表stus写入文件。
//    d. 使用ObjectOutputStream的flush()方法刷新输出流。
//    e. 关闭ObjectOutputStream流。
    public Manager(){
        File file=new File("stus");
        if (!file.exists()){
//            file.createNewFile();
            List<Stu>stus=new ArrayList<Stu>();
            try {
                ObjectOutputStream oos=new ObjectOutputStream(
                        new FileOutputStream("stus")
                );
                oos.writeObject(stus);
                oos.flush();
                oos.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

    public List<Stu> getStu() {
        List<Stu>stus=(List<Stu>) this.readData();
        return stus;
    }


//读
//使用了Java的ObjectInputStream类来读取一个名为"stus"的文件中的对象数据,并将其反序列化为一个对象。
//            1. 创建一个ObjectInputStream对象,它使用FileInputStream来读取文件数据。
//            2. 通过ObjectInputStream的readObject()方法,读取文件中的对象数据,并将其赋值给变量o。
//            3. 关闭ObjectInputStream流。
//            4. 如果在读取过程中出现IOException或ClassNotFoundException异常,将抛出RuntimeException异常。
//            5. 返回读取到的对象数据o。
    private Object readData() {
        Object o=null;
        try {
            ObjectInputStream ois=new ObjectInputStream(
                    new FileInputStream("stus")
            );
            //要实现反

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值