Serialize an object with an output stream

Suppose I have OutputStream( but not ObjectOutputStream ). Is it possible to send a serialized object using the write method? Thank!

+7
source share
4 answers

Here is what you do to serialize the object:

new ObjectOutputStream(outputStream).writeObject(obj);

If you want to control the output byte[]:

ByteArrayOutputStream buffer = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(buffer);

oos.writeObject(obj);

oos.close();

byte[] rawData = buffer.toByteArray();
+20
source

You can use an ObjectOutputStream to "capture" these objects in an array of bytes and send them to an OutputStream.

String s = "test";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( s );
byte[] byteArray = baos.toByteArray();
for ( byte b : byteArray ) {
    System.out.print( (char) b );
}

Another non-general option would be to serialize the object in a lowercase representation, for example. Csv

+1
source

: OutputStream ObjectOutputStream, ObjectOutputStream:

OutputStream myOriginalOutputStream = ...;
ObjectOutputStream oos = new ObjectOutputStream(myOriginalOutputStream);
oos.writeObject(new MyObject());
oos.flush();
oos.close();

ObjectOutputStream OutputStream write().

+1

ObjectOutputStream *serialize*. ObjectOutputStream java.io.OutputStream ( - ). Java Serialization API.

EDIT: XMLEncoder

( Doc: XMLEncoder ObjectOutputStream JavaBean , ObjectOutputStream )

0

All Articles