java 的序列化和反序列化

java 的序列化和反序列化



package com.wansha;

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


public class MySerializable{
	public static void main(String[] args) throws Exception{
		Person person = new Person(20,"zhangshan","hubei,jingmen");
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("123.txt"));
		oos.writeObject(person);
		oos.close();
		
		
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("123.txt"));
		Person person2 = (Person)ois.readObject();
		System.out.println(person2.age);
		oos.close();
		
	}
}

/**
 * 
 * 
 * @author sharp
 *
 *该类序列化时,该 类与之关联的其它类的引用也会尝试被序列化,
 *如果该引用没有实现 Serializable接口,
 *将会抛出NotSerializableException异常
 *
 */
class Person implements Serializable{
	
	public int age;
	private transient String name;        
	private static String address;        //transient和static不会被序列化到文件中
	
	public Person(int age, String name, String address) {
		super();
		this.age = age;
		this.name = name;
		this.address = address;
	}
}


如果被序列化的对象实现了这两个方法,该对象就支持更细腻化的序列化



 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException
 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值