使用 DataSerializable 的 Hazelcast 3.5 序列化

Hazelcast 3.5 serialization with DataSerializable

我想序列化一个 Book 对象:

public class Book implements DataSerializable {

    @Override
    void writeData(ObjectDataOutput out) throws IOException {
        ...
    }
    @Override
    void readData(ObjectDataInput in) throws IOException {
        ...
    }

}

问题是我不知道如何将 ObjectDataOutput/ObjectDataInput 类型的对象实例化为 serialize/deserialize Book 对象。

ObjectDataOutputStream 实现了 ObjectDataOutput,但我不知道如何实例化这个对象,因为它需要没有 public 构造函数的 SerializationService 对象。

那么,有什么方法可以从 FileOutputStream/FileInputStream 创建一个 ObjectDataOutput/ObjectDataInput 对象吗?

提前致谢

感谢@pveentjer,我找到了答案。

FileOutputStream fos = new FileOutputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
SerializationService serializationService = new DefaultSerializationServiceBuilder().build();
ObjectDataOutput odo = new ObjectDataOutputStream(bos, serializationService);

Book book = new Book();
book.writeData(odo);
bos.writeTo(fos);