我想序列化一个Book对象:
public class Book implements DataSerializable {
@Override
void writeData(ObjectDataOutput out) throws IOException {
...
}
@Override
void readData(ObjectDataInput in) throws IOException {
...
}
}问题是,我不知道如何实例化ObjectDataOutput/ObjectDataInput类型的对象来序列化/反序列化Book对象。
ObjectDataOutputStream实现ObjectDataOutput,但我不知道如何实例化这个对象,因为它需要没有公共构造函数的SerializationService对象。
那么,是否有任何方法可以从FileOutputStream/FileInputStream创建ObjectDataOutput/ObjectDataInput对象?
提前感谢
发布于 2015-07-22 11:54:09
多亏了@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);https://stackoverflow.com/questions/31540665
复制相似问题