Je dois convertir des objects en octets [] pour les stocker dans le magasin de clés-valeur de Tokyo Cabinet. Je dois également annuler l’octet [] sur un object lors de la lecture du magasin clé-valeur.
Y a-t-il des paquets qui peuvent m’aider dans cette tâche? Ou la meilleure solution pour la mettre en œuvre moi-même?
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(); }
Si votre classe étend Serializable
, vous pouvez écrire et lire des objects via un ByteArrayOutputStream
, ce que je fais habituellement.
Utilisez les méthodes serialize
et deserialize
dans SerializationUtils
partir de commons-lang .
Vous pouvez voir comment Hector fait cela pour Cassandra, où le but est le même – convertir tout vers et à partir de l’ byte[]
afin de stocker / récupérer à partir d’une firebase database NoSQL – voir ici . Pour les types primitifs (+ Ssortingng), il existe des sérialiseurs spéciaux, sinon il y a le ObjectSerializer
générique (attend Serializable
et utilisant ObjectOutputStream
). Bien entendu, vous ne pouvez l’utiliser que pour tout, mais il pourrait y avoir des métadonnées redondantes sous forme sérialisée.
Je suppose que vous pouvez copier le package complet et l’utiliser.