Java:object to byte 和byte to object converter(for Tokyo Cabinet)

我需要将对象转换为一个byte []来存储在Tokyo Cabinet的键值存储区中。 当从键值存储中读取数据时,我还需要将字节[]解开为字节。

有没有什么软件包可以帮我完成这个任务? 或者最好的解决scheme来自己实现呢?

public static byte[] serialize(Object obj) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(out); os.writeObject(obj); return out.toByteArray(); } public static Object deserialize(byte[] data) throws IOException, ClassNotFoundException { ByteArrayInputStream in = new ByteArrayInputStream(data); ObjectInputStream is = new ObjectInputStream(in); return is.readObject(); } 

如果你的类扩展了Serializable ,你可以通过ByteArrayOutputStream来写和读对象,这就是我通常所做的。

在commons-lang的 SerializationUtils使用serializedeserialize方法。

你可以看看Hector如何做到这一点,目标是相同的 – 为了从NoSQL数据库中存储/检索,将所有内容转换为byte[]和从byte[]中转换, 请参阅这里 。 对于原始types(+ String),有特殊的串行器,否则就是通用的ObjectSerializer (期望Serializable ,使用ObjectOutputStream )。 当然,你可以只使用它,但是在序列化的forms中可能会有冗余的元数据。

我想你可以复制整个软件包并使用它。