一、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")
);
//要实现反