java序列化和反序列化

java序列化和反序列化

序列化:就是将java对象转化成字节序列的过程。比如:将对象(内存)序列化到磁盘。
反序列化:就是将字节序列转化成对象的过程。比如:从磁盘反序列化到内存。

序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程

反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程

先创建一个实体类,实现Serializable接口

public class Person implements Serializable {

private static final long serialVersionUID = 8428798474641047929L;

private String name;

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

}
再创建一个序列化和反序列化的工具类

public class SerializationUtil {

//.bin后缀代表二进制文件
private static String FILE_NAME = "D:/obj.bin";

/**
 * 序列化
 */
public static void writeObject(Serializable s) {
	try {
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_NAME));
		oos.writeObject(s);
		oos.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

/**
 * 反序列化
 */
public static Object readObject() {
	Object obj = null;
	
	try {
		ObjectInput input = new ObjectInputStream(new FileInputStream(FILE_NAME));
		obj = input.readObject();
		input.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
	return obj;
}

}
然后main方法测试

public class Main {

public static void main(String[] args) {
	
	//序列化
	Person person = new Person();
	person.setName("混世魔王");
	SerializationUtil.writeObject(person);
	
	Person p = (Person) SerializationUtil.readObject();
	System.out.println("name = " + p.getName());
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值