阅读量:2
Java序列化是指将对象转换为字节流的过程,使得对象可以在网络中传输或者存储到文件中。
在Java中,实现序列化的方式是让类实现Serializable接口。Serializable接口是一个空接口,没有任何方法定义,它只是标记接口存在,用于表示该类可以被序列化。
要实现序列化,只需要在类的定义中添加implements Serializable语句即可。例如:
public class MyClass implements Serializable { // 类的定义 }
实现了Serializable接口的类可以使用Java的序列化机制进行序列化和反序列化。序列化可以使用ObjectOutputStream类的writeObject方法将对象转换为字节流,反序列化可以使用ObjectInputStream类的readObject方法将字节流转换为对象。
下面是一个简单的序列化和反序列化的例子:
import java.io.*; public class Main { public static void main(String[] args) { // 序列化对象 MyClass myObject = new MyClass(); try { FileOutputStream fileOut = new FileOutputStream("myobject.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(myObject); out.close(); fileOut.close(); System.out.println("Object serialized successfully"); } catch (IOException e) { e.printStackTrace(); } // 反序列化对象 MyClass deserializedObject = null; try { FileInputStream fileIn = new FileInputStream("myobject.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); deserializedObject = (MyClass) in.readObject(); in.close(); fileIn.close(); System.out.println("Object deserialized successfully"); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } // 使用反序列化后的对象进行操作 if (deserializedObject != null) { deserializedObject.doSomething(); } } } class MyClass implements Serializable { public void doSomething() { System.out.println("Doing something..."); } }