黑马程序员技术交流社区
标题:
什么是java序列化,如何实现java序列化?或者请解释Serializa...
[打印本页]
作者:
凝霜的枯藤
时间:
2014-5-24 18:06
标题:
什么是java序列化,如何实现java序列化?或者请解释Serializa...
本帖最后由 凝霜的枯藤 于 2014-5-26 17:41 编辑
如题:
什么是
java
序列化,如何实现
java
序列化?或者请解释
Serializable
接口的作用?
作者:
波涛
时间:
2014-5-24 19:36
利用对象的序列化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
作者:
Dark_Horse
时间:
2014-5-24 20:27
什么是序列化和如何实现序列化上说的清楚,希望下面代码对你有帮助...
public class ObjectOutptuStreamTest {
/**
* @param args
* 将对象存入到流中
* @throws IOException
* @throws FileNotFoundException
*/
public static void m1()throws IOException{
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("c:\\1.text"));
os.writeObject(new Personnn("zhangsasn",20));
os.close();
// 运行以上程序会出现java.io.NotSerializableException:某些序列话的对象不能实现
//所以Personnn要实现Serializable接口
}
//读出来
public static void m2()throws IOException, ClassNotFoundException{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:\\1.text"));
//返回的是object类型的
Personnn p = (Personnn)ois.readObject();
System.out.print(p);
}
//public static void main(String[] args) throws IOException, ClassNotFoundException
//可以直接写成public static void main(String[] args) throws Exception
public static void main(String[] args) throws IOException, ClassNotFoundException {
// TODO Auto-generated method stub
m2();
}
}
class Personnn implements Serializable{
/**
* serialVersionUID = 1L;通常是给编译器用的,因为一个类产生对象以后,固定存在以后,类可以改变
* 在重新编译的时候会产生一个新的序列号,根据ID好来判断这个对象和这个类他两个是不是用同一个序列号产生的
* ID就是给类固定一个标志。新的类还可以去操作曾经被序列化的对象
*
*/
private static final long serialVersionUID = 1L;
String name;
int age;
//对非晶态的成员不像序列话可以写成
//transient int age;
Personnn(String name, int age){
this.name = name;
this.age = age;
}
public String toString(){
return name+"..."+age;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2