Object Serialization and ObjectInputStream/ObjectOutputStream -Java 学习笔记 (27)

和其他OO语言一样,Java可以把Object转换成数据流,存储在硬盘上,也可以把读出硬盘数据并转换成对象,这叫做Object Serialization(对象串行化)。

如果一个类要实现Serialization,则必须implements接口Serializable。
接口Serializable并没有定义方法。它只是一个标记接口,向编译器和JVM 说明此对象可以Serialized。
关键字transient声明的变量不参加串行化。

 类ObjectInputStream和ObjectOutputStream封装了串行化数据的读写方法。
ObjectInputStream.readObject();      //从流中读取对象
ObjectOutputStream.writeObject(Object object);    //向流中写入对象

import  java.io. * ;

class  T  implements  Serializable  {
    
int a = 0 ;
    
int b  = 0 ;
    
transient int c = 10 ; //transient声明的变量不被串行化
}


public   class  ObjectSerialize  {
    
public static void main(String[] args) throws Exception {
        T t 
= new T() ;
        t.a 
= 1 ;
        t.b 
= 2 ;
        t.c 
= 3 ;
        FileOutputStream fos 
= new FileOutputStream("SerializedObject.dat");
        ObjectOutputStream oos 
= new ObjectOutputStream(fos);
        oos.writeObject(t);
        oos.flush();
        oos.close();
        FileInputStream fis 
= new FileInputStream("SerializedObject.dat");
        ObjectInputStream ois 
= new ObjectInputStream(fis);
        T readedT 
= (T)ois.readObject();
        System.out.println(readedT.a);
        System.out.println(readedT.b);
        System.out.println(readedT.c);
    }

}
运行结果
1
2
0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值