Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Serializable java object to a string

5,155 views
Skip to first unread message

bob smith

unread,
Oct 9, 2013, 11:09:58 PM10/9/13
to
What's the easiest way to convert a Serializable java object to a string?

Maybe a hex string or base64?

Thanks.

Jeff Higgins

unread,
Oct 10, 2013, 2:11:23 AM10/10/13
to
On 10/09/2013 11:09 PM, bob smith wrote:
> What's the easiest way to convert a Serializable java object to a string?
>
> Maybe a hex string or base64?
>
<http://docs.oracle.com/javase/7/docs/platform/serialization/spec/serialTOC.html>or
or write a check

markspace

unread,
Oct 10, 2013, 2:27:30 AM10/10/13
to
javax.xml.bind.DatatypeConverter contains both hex and base 64
conversion methods to help you out.

Arne Vajhøj

unread,
Oct 10, 2013, 7:52:27 PM10/10/13
to
On 10/9/2013 11:09 PM, bob smith wrote:
> What's the easiest way to convert a Serializable java object to a string?
>
> Maybe a hex string or base64?

Write the object to an ObjectOutputStream wrapped around
a ByteArrayOutputStream, retrieve the byte array and
convert it to hex or base64.

Arne


Arne Vajhøj

unread,
Oct 10, 2013, 8:07:38 PM10/10/13
to
Example:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.DatatypeConverter;

public class SerFun {
public static String anySerialize(Object o) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
return DatatypeConverter.printBase64Binary(baos.toByteArray());
}
public static Object anyDeserialize(String s) throws IOException,
ClassNotFoundException {
ByteArrayInputStream bais = new
ByteArrayInputStream(DatatypeConverter.parseBase64Binary(s));
ObjectInputStream ois = new ObjectInputStream(bais);
Object o = ois.readObject();
ois.close();
return o;
}
public static void main(String[] args) throws Exception {
List<Data> lst = new ArrayList<Data>();
lst.add(new Data(1, "A"));
lst.add(new Data(2, "BB"));
lst.add(new Data(3, "CCC"));
System.out.println(lst);
String s = anySerialize(lst);
@SuppressWarnings("unchecked")
List<Data> lst2 = (List<Data>)anyDeserialize(s);
System.out.println(lst2);
}
}

Arne


Arne Vajhøj

unread,
Oct 10, 2013, 8:08:19 PM10/10/13
to
On 10/10/2013 7:52 PM, Arne Vajhøj wrote:
I will recommend XML serialization over binary serialization if
the serialized version wil be persisted!

Arne


0 new messages