定义一个Employee类,编写程序使用对象输出流将几个Employee对象写入employee.ser文件,然后使用对象输入流读出这些对象。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果

12行导包去掉。
第一行已经导了这个包了,而且就算是导包,也只能放在最上面,不能放在类后面。

img

已经提示的很明确了,将第12行代码删除即可,一个Java文件里面只导包一次即可,导包语句应该放到类上面,一般要求Java书写顺序关系是package-->import-->class, package(如果存在)放到第一行,导包放在第二行,新建类放到导包import下

img

把对象放到List集合,保存集合,答案如下:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

class Employee implements Serializable{
    int id;
    String name;
    double salary;
    public Employee(int id,String name,double salary) {
        this.id = id;
        this.name = name;
        this.salary = salary;
    }
    @Override
    public String toString() {
        return "id="+id+",name="+name+",salary="+salary;
    }
}
public class ObjectSerializeDemo {

    public static void main(String[] args) throws Exception {

        Employee emp1 = new Employee(1001, "张三", 8000);
        Employee emp2 = new Employee(1002, "李四", 9000);
        Employee emp3 = new Employee(1003, "小丽", 7000);
        
        List<Employee> empList = new ArrayList<Employee>();
        empList.add(emp1);
        empList.add(emp2);
        empList.add(emp3);
        
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("employee.ser"));
        //保存
        oos.writeObject(empList);
        //读取
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("employee.ser"));
        
        List<Employee> list = (List<Employee>)ois.readObject();
        for(Employee e: list) {
            System.out.println(e);
        }
    }
}