本文共 840 字,大约阅读时间需要 2 分钟。
Java中序列化是指将Java对象通过变换成为字节序列,来将该对象持久化到硬盘中。并且字节序列也很适合网络传输,因此如果需要在网络中传递Java对象,可以在其先序列化后进行传输,并由接收方进行反序列化操作。Java中反序列化是指将序列化的字节序列重新组织成Java对象,实际上,序列化是指将Java对象转换为字节序列,而反序列化是指将字节序列转换为Java对象。
假设存在一个User对象,其代码如下:
public class User implements Serializable{ public String name; public int age; }
如果需要进行序列化,可以:
User user = new User(); user.name = "XuJun"; user.age = 13; File file = new File("user.txt"); ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(file)); objOut.writeObject(user); objOut.close();
此时,user对象就被序列化到了user.txt中
如果需要进行反序列化的操作,可以:
User user = null; File file = new File("user.txt"); ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(file)); user = (User)objInput.readObject(); objInput.close();
注意:
被static、transient修饰的字段不会被序列化
建议为要序列化的类添加serialVersionUID
,如果使用者没有添加,编译期会自动添加一个
转载地址:http://cbmmi.baihongyu.com/