首页 > 代码库 > java 对象序列化
java 对象序列化
对象的序列化:把一个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 对象序列化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。