在Java中,枚舉類默認是實現了Serializable接口的,因此可以直接進行序列化操作。在進行序列化時,可以使用ObjectOutputStream來將枚舉對象寫入輸出流,然后使用ObjectInputStream來讀取枚舉對象。
下面是一個示例代碼:
import java.io.*;
enum Color {
RED, GREEN, BLUE
}
public class EnumSerialization {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Color color = Color.RED;
// 序列化
FileOutputStream fos = new FileOutputStream("color.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(color);
oos.close();
// 反序列化
FileInputStream fis = new FileInputStream("color.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Color deserializedColor = (Color) ois.readObject();
ois.close();
System.out.println("Original color: " + color);
System.out.println("Deserialized color: " + deserializedColor);
}
}
在上面的示例中,首先定義了一個枚舉類Color,然后創建了一個Color.RED的枚舉對象進行序列化和反序列化操作。在輸出中可以看到序列化前后的枚舉對象是相同的。