Java 序列化

对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。对象序列 化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制 流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序 一旦获得了这种二进制流(无论是从磁盘中获取的,还是通过网络获取的),都可以 将这种二进制流恢复成原来的Java对象。

 

序列化的含义和意义

序列化机制允许将实现序列化的Java对象转换成字节序列,这些字节序列可以保存在 磁盘上,或通过网络传输,以备以后重新恢复成原来的对象。序列化机制使得对象可 以脱离程序的运行而独立存在。   对象的序列化(Serialize)指将一个Java对象写入IO流中,如果需要让某个对象支持序列化机制,则必须让它的类是可序列化的(serializable)

为了让某个类是可序列化的,该类必须实现如下两个接口之一:

  1. Serializable(常用)
  2. ExternalizableJava

 

第一步肯定是创建一个类来实现一下Serializable这个接口:

 

public class Test implements Serializable{

//生成一个Serializable的序列id

private static final long serialVersionUID = 1L;

//声明两个变量

private String profession;

private int classname;

 

//无参构造器

public Test(){

}

 

//参构造器

public Test (String profession, int classname) {

super();

this.profession = profession;

this.classname = classname;

}

 

//get 和 set 方法

public String getProfession() {

return profession;

}

 

public void setProfession(String profession) {

this.profession = profession;

}

 

public int getClassname() {

return classname;

}

 

public void setClassname(int classname) {

this.classname = classname;

}

}

把类创建完之后就可以创建另一个类来实现序列化了

public class ObjectStreamDemo {

public static void main(String[] args) throws IOException, ClassNotFoundException{

//实例化刚才新建的类

Test test = new Test();

//变量赋值

test.setProfession("IT专业");

test.setClassname(1702);

//创建一个输出流

OutputStream out = new FileOutputStream("H:/MyCode/test.txt");

//实例化ObjectOutputStream

ObjectOutputStream outputStream = new ObjectOutputStream(out);

 

//把对象序列化,写入文件

outputStream.writeObject(test);

//关闭输出流

outputStream.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值