Java: objeto a byte[] y byte[] a convertidor de objeto(para el gabinete de Tokio)
serialization bytearray (4)
Puede ver cómo Hector hace esto para Cassandra, donde el objetivo es el mismo: convertir todo en y desde byte[]
para almacenar / recuperar desde una base de datos NoSQL. Consulte aquí . Para los tipos primitivos (+ String), existen Serializadores especiales, de lo contrario, está el ObjectSerializer
genérico (esperando Serializable
y utilizando ObjectOutputStream
). Por supuesto, puede usarlo solo para todo, pero puede haber metadatos redundantes en forma serializada.
Supongo que puedes copiar todo el paquete y hacer uso de él.
Necesito convertir objetos en un byte [] para almacenarlos en el almacén de valores-clave del gabinete de Tokio. También necesito desvincular el byte [] de un Objeto al leer desde el almacén de clave-valor.
¿Hay algún paquete por ahí que me ayude con esta tarea? ¿O sería la mejor solución para implementarlo yo mismo?
Si su clase se extiende a Serializable
, puede escribir y leer objetos a través de ByteArrayOutputStream
, eso es lo que suelo hacer.
Use serialize
y deserialize
métodos en SerializationUtils
de commons-lang .
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();
}