オブジェクトをbyte []に変換して、Tokyo Cabinet Key-Valueストアに格納する必要があります。キーと値のストアから読み取るときに、byte []をObjectにアンバイトする必要もあります。
この作業に役立つパッケージはありますか?それとも自分で実装するのに最適なソリューションでしょうか?
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 のserialize
でdeserialize
およびSerializationUtils
メソッドを使用します。
あなたは、ヘクターがどのようにCassandraでこれを行うかを見ることができます。ここでは、目標は同じです-byte[]
NoSQLデータベースから保存/取得するには- こちらを参照 。プリミティブ型(+ String)には、特別なシリアライザーがあります。それ以外の場合は、汎用のObjectSerializer
(Serializable
を想定し、ObjectOutputStream
を使用)があります。もちろん、すべてにのみ使用できますが、シリアル化された形式で冗長なメタデータが存在する場合があります。
パッケージ全体をコピーして利用できると思います。