Java 对象流(输入-输出)objectoutputstream序列化报错

本文详细介绍了Java中对象序列化与反序列化的原理及应用,通过实例演示了如何实现序列化接口,避免java.io.NotSerializableException错误。同时,提供了完整的代码示例,包括对象类定义、序列化和反序列化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:java.io.notserializableexception

解决方法:添加下面代码实现

对象类

 1 package com.etc._07ObjectDemo;
 2 
 3 import java.io.Serializable;
 4 
 5 public class Person implements Serializable {
 6     private int id;
 7     private String name;
 8     private String sex;
 9     public int getId() {
10         return id;
11     }
12     public void setId(int id) {
13         this.id = id;
14     }
15     public String getName() {
16         return name;
17     }
18     public void setName(String name) {
19         this.name = name;
20     }
21     public String getSex() {
22         return sex;
23     }
24     public void setSex(String sex) {
25         this.sex = sex;
26     }
27     public Person() {
28         super();
29         // TODO Auto-generated constructor stub
30     }
31     public Person(int id, String name, String sex) {
32         super();
33         this.id = id;
34         this.name = name;
35         this.sex = sex;
36     }
37     @Override
38     public String toString() {
39         return "Person [id=" + id + ", name=" + name + ", sex=" + sex + "]";
40     }
41     
42     
43 
44 }
Object输入流
 1 package com.etc._07ObjectDemo;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.IOException;
 6 import java.io.ObjectInputStream;
 7 
 8 public class ObjectInputStreamDemo {
 9     //文件-------->Person对象     反序列化
10     public static void main(String[] args) {
11         try {
12             ObjectInputStream ois = new ObjectInputStream(
13                     new FileInputStream("D:/my123.ini"));
14             
15             Object object = ois.readObject();
16             if(object instanceof Person){
17                 Person p = (Person)object;
18                 System.out.println(p);
19             }
20             
21             
22             ois.close();
23         } catch (FileNotFoundException e) {
24             // TODO Auto-generated catch block
25             e.printStackTrace();
26         } catch (IOException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         } catch (ClassNotFoundException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         }
33     }
34 
35 }
Object输出流
 1 package com.etc._07ObjectDemo;
 2 
 3 import java.io.File;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.ObjectOutputStream;
 8 
 9 public class ObjectOutputStreamDemo {
10     
11     //Person对象------>文件     序列化
12     public static void main(String[] args) {
13         
14         try {
15             ObjectOutputStream oos = new ObjectOutputStream(
16                     new FileOutputStream("D:/my123.ini"));
17 //            创建对象
18             Person p = new Person(1001,"张三","");
19             oos.writeObject(p);
20             oos.close();
21             
22             System.out.println("ending....");
23             
24             //java.io.NotSerializableException
25         } catch (FileNotFoundException e) {
26             // TODO Auto-generated catch block
27             e.printStackTrace();
28         } catch (IOException e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         }
32         
33     }
34 
35 }

 

转载于:https://www.cnblogs.com/bosskaiche/p/7476456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值