132. Serializing objects to strings
In the previous problem, you saw how to serialize objects to byte arrays. If we work a little bit on a byte array, we can obtain a string representation of serialization. For instance, we can rely on java.util.Base64
to encode a byte array to String
as follows:
public static String objectToString(Serializable obj) throws IOException {
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream ois = new ObjectOutputStream(baos)) {
ois.writeObject(obj);
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
}
A possible output looks like this:
rO0ABXNyABZtb2Rlcm4uY2hhbGxlbmdlLk1lbG9u2WrnGA2MxZ4CAAJGAAZ3ZWlnaHRMAAR0eXBldAAST GphdmEvbGFuZy9TdHJpbmc7eHBFHEAAdAADR2Fj
And, the code to obtain such a String is as follows:
String melonSer = Converters.objectToString(melon);
The reverse process relies on the Base64
decoder as...