Вот несколько методов для преобразования туда и обратно в байт [] и обратно.
Конечно, объект может быть строкой
public static Object byteArrayToObject(byte[] data)
{
Object retObject = null;
if (data != null)
{
ByteArrayInputStream bis = null;
ObjectInputStream ois = null;
try
{
bis = new ByteArrayInputStream(data);
ois = new ObjectInputStream(bis);
retObject = ois.readObject();
}
catch(StreamCorruptedException e)
{
e.printStackTrace(System.out);
}
catch(OptionalDataException e)
{
e.printStackTrace(System.out);
}
catch(IOException e)
{
e.printStackTrace(System.out);
}
catch(ClassNotFoundException e)
{
e.printStackTrace(System.out);
}
finally
{
try
{
bis.close();
}
catch(IOException ex)
{
ex.printStackTrace(System.out);
}
try
{
ois.close();
}
catch(IOException ex)
{
ex.printStackTrace(System.out);
}
}
}
return retObject;
}
public static byte[] objectToByteArray(Object anObject)
{
byte[] results = null;
if (anObject != null)
{
// create a byte stream to hold the encoded object
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
try
{
// create a stream to write the object
ObjectOutputStream ostrm = new ObjectOutputStream(bytes);
// write the object
ostrm.writeObject(anObject);
// ensure that the entire object is written
ostrm.flush();
results = bytes.toByteArray();
try
{
ostrm.close();
}
catch (IOException e)
{
}
try
{
bytes.close();
}
catch (IOException e)
{
}
}
catch (IOException e)
{
e.printStackTrace(System.out);
}
}
return results;
}
P.S. Этот старый код, который я выкопал на чердаке - нуждается в модернизации