Как конвертировать любой объект в байты? - PullRequest
1 голос
/ 09 февраля 2012

Я мог бы подумать об одном из следующих способов:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();

Мои вопросы: есть ли другие лучшие альтернативы (какой-то другой способ, сторонняя библиотека и т. Д.)?

1 Ответ

0 голосов
/ 09 февраля 2012

Если вы хотите преобразовать любые объекты, то есть экземпляры классов, которые вы не контролируете, то вам придется использовать API сериализации Java для их сериализации.

Естьдоступно множество реализаций API сериализации, обеспечивающих различный выход.Например, вы можете сериализовать ваши экземпляры в XML или YAML вместо двоичного формата Java по умолчанию.

Вы написали, что хотите специально сериализовать объект в байт , поэтому вам следует искать реализациюAPI сериализации для обеспечения своего рода двоичного вывода. Kryo представляется одной из таких библиотек.

Приведенный вами пример кода, безусловно, является самым простым способом сериализации объекта в двоичный файл.

...