import java.io.Serializable;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.io.ObjectOutputStream;
public class javaSerializable_fun {
/**
*【java程序设计高级教程】清华大学出版社*北京交通大学出版社 定价:¥33.00
*
java序列化和反序列化演示
*目的:在web项目开发的时候,经常用到序列化和反序列化用来传递大流量的数据
*序列化一般应用与以下场景之中:
*1.永久性保存对象,把对象通过序列化字节流保存到本地文件中;
*2.通过序列化在网络中传输对象
*3.通过序列化在进程间传递对象
*
* java.io.Serializable
接口,类只有实现Serializable借口才能被序列化
*
java.io.Externalizable接口,利用java的序列化和反序列化工具,很多存储和恢复对象的工作都可以自动完成。
* java.io.ObjectOutput接口,序列化传出,
继承了DataOutput接口并定义了一些方法,它支持对象序列化;
*
重点说明:在该类中,writeObject()方法是最重要的方法,用于对象序列化,如果对象包含其他的对象引用,则writeObject()方法地柜序列化这些对象;
* java.io.ObjectOutputStream类,负责向流中写入对象,构造方法:ObjectOutputStream(OutputStream
out);
*
java.io.ObjectInput接口,序列化传入。继承了DataInput接口并定义了一些方法,它支持对象序列化;
*
ObjectInputStream类, 负责向从流中读取对象,构造方法:ObjectInputStream(InputStream
out);
***/
public static void main(String[] args) {
try
{
//构造FileOutputStream对象
FileOutputStream
f=new
FileOutputStream("C:a.txt");
//构造ObjectOutputStream对象
ObjectOutputStream
out=new
ObjectOutputStream(f);
Customer
customer=new
Customer("bj",50);
//使用ObjectOutputStream对象的writeObject()方法进行序列化
out.writeObject(customer);
//关闭ObjectOutputStream对象
out.close();
//关闭FileOutputStream对象
f.close();
System.out.println("序列化完毕!");
}
catch(IOException
e)
{
e.getStackTrace();
}
}
}
class Customer implements Serializable
{
private static final
long serialVersionUID =1L;
private String
name;
private int age;
public String
getName()
{
return
name;
}
public int
getAge()
{
return
age;
}
public Customer(String name,int
age)
{
this.name=name;
this.age=age;
}
public
String toString()
{
return "name="+ name
+",age="+age;
}
}