要实现标记序列化,可以使用以下步骤:
Serializable
接口。import java.io.Serializable;
public class Marker implements Serializable {
private String color;
private double size;
// 构造函数、getter和setter方法等
@Override
public String toString() {
return "Marker{" +
"color='" + color + '\'' +
", size=" + size +
'}';
}
}
import java.io.*;
public class SerializationExample {
public static void main(String[] args) {
Marker marker = new Marker("red", 5.0);
try {
// 创建一个输出流来写入字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 创建一个对象输出流来处理序列化
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
// 将对象写入输出流
objectOutputStream.writeObject(marker);
objectOutputStream.close();
// 获取字节数组
byte[] bytes = outputStream.toByteArray();
// 打印字节数组
System.out.println("Serialized Marker: " + new String(bytes));
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
public class DeserializationExample {
public static void main(String[] args) {
byte[] bytes = // 从外部获取字节数组
try {
// 创建一个输入流来读取字节数组
ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
// 创建一个对象输入流来处理反序列化
ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
// 从输入流中读取对象
Marker marker = (Marker) objectInputStream.readObject();
objectInputStream.close();
// 打印反序列化的对象
System.out.println("Deserialized Marker: " + marker);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
上述代码示例演示了如何将一个Marker
对象序列化为字节数组并打印,然后将该字节数组反序列化回Marker
对象并打印。