Подтвердить что ты не робот

Java: объект для байта [] и байт [] для конвертера объектов (для Tokyo Cabinet)

Мне нужно преобразовать объекты в байт [], которые будут храниться в хранилище ключей для магазина Tokyo Cabinet. Мне также нужно удалить байт [] в объект при чтении из хранилища значений ключа.

Есть ли там пакеты, которые помогут мне в решении этой задачи? Или самое лучшее решение для его реализации?

4b9b3361

Ответ 1

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();
}

Ответ 2

Если ваш класс расширяет Serializable, вы можете писать и читать объекты через ByteArrayOutputStream, что я обычно делаю.

Ответ 3

Используйте методы serialize и deserialize в SerializationUtils из commons-lang.

Ответ 4

Вы можете посмотреть, как Гектор делает это для Cassandra, где цель - то же самое - конвертировать все в и из byte[], чтобы хранить/извлекать из базы данных NoSQL - см. здесь. Для примитивных типов (+ String) существуют специальные Сериализаторы, в противном случае существует общий ObjectSerializer (ожидающий Serializable и использование ObjectOutputStream). Разумеется, вы можете использовать его только для всего, но в сериализованной форме могут быть избыточные метаданные.

Я думаю, вы можете скопировать весь пакет и использовать его.