温馨提示×

Java定义枚举类如何序列化

小樊
151
2024-06-25 17:16:34
栏目: 编程语言

在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的枚举对象进行序列化和反序列化操作。在输出中可以看到序列化前后的枚举对象是相同的。

0