web-dev-qa-db-ja.com

Java:byte []へのオブジェクトとbyte []からオブジェクトへのコンバーター(東京キャビネット用)

オブジェクトをbyte []に​​変換して、Tokyo Cabinet Key-Valueストアに格納する必要があります。キーと値のストアから読み取るときに、byte []をObjectにアンバイトする必要もあります。

この作業に役立つパッケージはありますか?それとも自分で実装するのに最適なソリューションでしょうか?

59
volni
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();
}
150
Thomas Mueller

クラスがSerializableを拡張している場合、ByteArrayOutputStreamを介してオブジェクトを読み書きできます。それが私が通常行うことです。

11
G B

commons-langserializedeserializeおよびSerializationUtilsメソッドを使用します。

8
SANN3

あなたは、ヘクターがどのようにCassandraでこれを行うかを見ることができます。ここでは、目標は同じです-byte[] NoSQLデータベースから保存/取得するには- こちらを参照 。プリミティブ型(+ String)には、特別なシリアライザーがあります。それ以外の場合は、汎用のObjectSerializerSerializableを想定し、ObjectOutputStreamを使用)があります。もちろん、すべてにのみ使用できますが、シリアル化された形式で冗長なメタデータが存在する場合があります。

パッケージ全体をコピーして利用できると思います。

5
Bozho