标签:java 序列化 serializable
对象的序列化:把一个Object对象直接转化为字节流,然后把它写入到硬盘上的一个二进制文件或者通过网络传输,同样的,我们可以把这个二进制文件读入到内存,然后用来初始化一个对象,需要序列化得类对象,需要实现Serializable接口(空接口,与instance of连用,起到标志作用),不需要序列化得属性可以用transient修饰。
Class:
ObjectOutputStream
ObjectInputStream
常用方法:
readObject
writeObject
其实很容易想到这样一个问题,就是序列化得对象中有一个指针指向另一个对象时的操作,我们应当把指针指向的对象也一起序列化。另外在读取之后重组对象时,引用的内容也应该做同步的修改.
在C++的笔记中做了一个简单的实现程序,可以参考一下
一个基本的示例代码
class Student implements Serializable{ public String name; transient public float score; public Student(String name,float score) { this.name = name; this.score = score; } } public class TestIO { public static void main(String[] args) { Student ss = new Student("liha", 95.5f); File file = new File("D:\\object.dat"); try { ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(file)); objOut.writeObject(ss); ObjectInputStream objIn = new ObjectInputStream(new FileInputStream(file)); Student sbackStudent = (Student)objIn.readObject(); System.out.println(sbackStudent.name); System.out.println(sbackStudent.score); objOut.close(); objIn.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
本文出自 “技术生活” 博客,请务必保留此出处http://6621180.blog.51cto.com/6611180/1922798
标签:java 序列化 serializable
原文地址:http://6621180.blog.51cto.com/6611180/1922798