Я также рекомендую использовать инструмент SerializationUtils. Я хочу исправить неправильный комментарий @Abilash. Метод SerializationUtils.serialize()
является , а не ограниченным 1024 байтами, в отличие от другого ответа здесь.
public static byte[] serialize(Object object) {
if (object == null) {
return null;
}
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
try {
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
oos.flush();
}
catch (IOException ex) {
throw new IllegalArgumentException("Failed to serialize object of type: " + object.getClass(), ex);
}
return baos.toByteArray();
}
На первый взгляд , вы можете подумать, что new ByteArrayOutputStream(1024)
разрешит только фиксированный размер. Но если вы внимательно посмотрите на ByteArrayOutputStream
, вы поймете, что поток будет расти при необходимости:
Этот класс реализует поток вывода, в котором данные
записано в байтовый массив. Буфер автоматически растет как данные
к нему написано.
Данные можно получить с помощью toByteArray()
и
toString()
.