sky5412 2020-05-29 18:33 采纳率: 0%
浏览 61

java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: elective.system.Elective

1.Elective类已经继承了Serializable接口依旧出现标题错误
2.这是Elective类:
public class Elective implements Serializable {
private int class_num; //选修课程编号
private String class_nature; //课程类别
private String class_name; //选修课名称
private String class_teacher; //课程教师
private int class_credit; //课程学分
private String class_time; //课程起止周
private String class_daily_time; //课程日常上课时间
private String class_school; //课程承办的二级学院
private int class_person_num; //课程人数
private String class_note; //课程备注
//无参构造方法
public Elective() {
}

//有参构造方法


public Elective(int class_num, String class_nature, String class_name, String class_teacher, int class_credit, String class_time, String class_daily_time, String class_school, int class_person_num, String class_note) {
    this.class_num = class_num;
    this.class_nature = class_nature;
    this.class_name = class_name;
    this.class_teacher = class_teacher;
    this.class_credit = class_credit;
    this.class_time = class_time;
    this.class_daily_time = class_daily_time;
    this.class_school = class_school;
    this.class_person_num = class_person_num;
    this.class_note = class_note;
}

//getter和setter方法


public int getClass_person_num() {
    return class_person_num;
}

public void setClass_person_num(int class_person_num) {
    this.class_person_num = class_person_num;
}

public int getClass_num() {
    return class_num;
}

public void setClass_num(int class_num) {
    this.class_num = class_num;
}

public String getClass_name() {
    return class_name;
}

public void setClass_name(String class_name) {
    this.class_name = class_name;
}

public String getClass_teacher() {
    return class_teacher;
}

public void setClass_teacher(String class_teacher) {
    this.class_teacher = class_teacher;
}

public int getClass_credit() {
    return class_credit;
}

public void setClass_credit(int class_credit) {
    this.class_credit = class_credit;
}

public String getClass_time() {
    return class_time;
}

public void setClass_time(String class_time) {
    this.class_time = class_time;
}

public String getClass_daily_time() {
    return class_daily_time;
}

public void setClass_daily_time(String class_daily_time) {
    this.class_daily_time = class_daily_time;
}

public String getClass_nature() {
    return class_nature;
}

public void setClass_nature(String class_nature) {
    this.class_nature = class_nature;
}

public String getClass_note() {
    return class_note;
}

public void setClass_note(String class_note) {
    this.class_note = class_note;
}

public String getClass_school() {
    return class_school;
}

public void setClass_school(String class_school) {
    this.class_school = class_school;
}

//增加选修课程
public boolean add_class(Elective elective){
    boolean flag = false;
    File file = new File("D:\\IdeaProjects\\basic-code\\01-code\\选修课程表\\class.txt");
    OperateFile operateFile = new OperateFile();
    try{
        operateFile.save(elective,file);
        flag = true;
    }catch (Exception e){
        e.printStackTrace();
    }
    return flag;
}

//查看已有选修课程
public ArrayList<Elective> look_class(){
    ArrayList<Elective> list = new ArrayList<>();
    File file = new File("D:\\IdeaProjects\\basic-code\\01-code\\选修课程表\\class.txt");
    OperateFile operateFile = new OperateFile();
    try{
        list = operateFile.load(file);
    }catch (Exception e){
        e.printStackTrace();
    }
    return list;
}

@Override
public String toString() {
    return "课程编号:" + class_num +
            ", 课程类别:" + class_nature +
            ", 课程名称:" + class_name +
            ", 授课教师:" + class_teacher +
            ", 学分:" + class_credit +
            ", 课程起止周:" + class_time +
            ", 课程上课时间:" + class_daily_time +
            ", 课程承办学院:" + class_school+
            ", 课程备注:" + class_note;
}

}
3.这是读取和输入文件类
package elective.system;

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

/*
文件操作类
*/
public class OperateFile implements Serializable{

public boolean save(Object e,File file) throws Exception{                         // 保存对象
    boolean flag = false ;                                                // 定义操作标志位
    FileOutputStream fos = new FileOutputStream(file,true);       //采用追加方式写入数据
    if(file.length()<1){
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(e);
        flag = true;
        oos.close();
    }else{
        MyObjectOutputStream mos = new MyObjectOutputStream(fos);
        mos.writeObject(e);
        flag = true;
        mos.close();
    }
    return flag ;
}
public ArrayList load(File file) throws Exception{                          // 读取对象
    ArrayList<Object> list = new ArrayList();
    FileInputStream fis = new FileInputStream(file);
    ObjectInputStream ois = new ObjectInputStream(fis);
    while(fis.available()>0){
        Object p =  ois.readObject();
        list.add(p);
    }
    ois.close();
    return list;
}

}
class MyObjectOutputStream extends ObjectOutputStream{

public MyObjectOutputStream(OutputStream out) throws IOException {
    super(out);
}

public void writeStreamHeader() throws IOException{
    return;
}

}
4.这是操作
Elective elective = new Elective();
ArrayList list = elective.look_class();
for(Elective et : list){
System.out.println(et.toString());
}

希望各位大佬可以帮忙解答一下
  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析