java序列化提供如下类型的序列化:1. 基本数据类型序列化;2. 对象序列化,要求类实现java.io.serializable接口;3. 外部化和反序列化,要求对象实现java.io.externalizable接口。实战中,可直接存储和读取对象信息。
Java 序列化的类型
Java 序列化是一种将对象的状态保存到持久存储器或通过网络传输的过程。Java 提供了以下类型的序列化:
1. 基本数据类型序列化
立即学习“Java免费学习笔记(深入)”;
基本数据类型(如 int、long、double)可以被直接序列化。
// 基本数据类型序列化 int num = 100; OutputStream out = new FileOutputStream("num.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(num); oos.close();
2. 对象序列化
要序列化对象,类需要实现 java.io.Serializable 接口。
// 对象序列化 class Person implements Serializable { private String name; private int age; // ... } Person person = new Person(); OutputStream out = new FileOutputStream("person.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(person); oos.close();
3. 外部化和反序列化
外部化允许自定义序列化和反序列化的过程。对象需要实现 java.io.Externalizable 接口。
// 外部化 public void writeExternal(ObjectOutput out) { out.writeObject(name); out.writeInt(age); } // 反序列化 public void readExternal(ObjectInput in) { this.name = (String) in.readObject(); this.age = in.readInt(); }
实战案例
案例:存储和读取用户信息
// 存储用户信息 UserInfo user = new UserInfo(); OutputStream out = new FileOutputStream("user.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(user); oos.close(); // 读取用户信息 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.ser")); UserInfo user2 = (UserInfo) ois.readObject(); ois.close();
以上就是java序列化反序列化的类型有哪些?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号