200_IO流_序列化版本号_serialVersionUID详解

本文通过一个具体的Java程序示例介绍了如何实现对象的序列化与反序列化过程。主要内容包括定义一个实现了Serializable接口的User类,并设置了序列化版本ID,同时利用transient关键字排除了不想参与序列化的字段。此外,还展示了如何使用ObjectOutputStream将对象写入文件以及如何使用ObjectInputStream从文件中读取对象。
import java.io.Serializable;

//因为User实现了Serializable 接口。JVM会特殊待遇,会给该类添加一个属性
// static final long serialVersionUID = -5777248435420590281L
public class User implements Serializable {
	
	//不让系统自动生成,自己写一个序列化版本号
	private static final long serialVersionUID = -5777248435420590281L;
	String name;
	//如果不想让该属性参加序列化,需要使用transient关键字
	transient int  age;
	public User(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + "]";
	}  
}


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Test {

	public static void main(String[] args) throws Exception {
		
		
		ObjectOutputStream  oos = new ObjectOutputStream(new FileOutputStream("bin/temp01"));
			User u1 = new User("张三",20);
			User u2 = new User("李四",30);
			oos.writeObject(u1);
			oos.writeObject(u2);
			oos.close();
			
		ObjectInputStream ois  = new ObjectInputStream(new FileInputStream("bin/temp01"));	
		Object obs = ois.readObject();
		Object obs1 = ois.readObject();
		System.out.println(obs);
		System.out.println(obs1);
		ois.close();
	}

}




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值