黑马程序员技术交流社区
标题:
如何实现java序列化
[打印本页]
作者:
刘晓康
时间:
2012-4-5 21:23
标题:
如何实现java序列化
如何实现java序列化
作者:
李节起
时间:
2012-4-5 23:25
序列化
就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现
:将需要被序列化的类实现
Serializable
接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用
ObjectOutputStream
对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
作者:
yangshang1
时间:
2012-4-6 06:23
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class TestSerilizible {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
FileOutputStream fos = new FileOutputStream("abc.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
Person p=new Person();
p.setName("asd");
oos.writeObject(p);
oos.flush();
FileInputStream fis=new FileInputStream("abc.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
Person p1=(Person)ois.readObject();
System.out.println(p1.getName());
ois.close();
oos.close();
}
}
class Person implements Serializable
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
private String pwd;
}
作者:
曹魁
时间:
2012-4-6 08:14
我们有的时候需要将将一个java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个
java 对象,例如,要将java 对象存储到硬盘或者传送给网络上的其他计算机,这个过程
我们可以自己写代码去把一个java 对象变成某个格式的字节流再传输,但是,jre 本身
就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让java
帮我们做,要被传输的对象必须实现serializable 接口,这样,javac 编译时就会进行特
殊处理,编译的类才可以被writeObject方法操作,
这就是所谓的序列化
。
需要被序列化的类必须实现Serializable 接口,该接口是一个mini 接口,其中没有需要实现的方法,
implements Serializable只是为了标注该对象是可被序列化的。
例如,在web 开发中,如果对象被保存在了Session 中,tomcat 在重启时要把Session
对象序列化到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统
进行网络传输或通过rmi 等远程调用,这就需要在网络上传输对象,被传输的对象就必
须实现Serializable接口。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2