Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- /*
- * A simple class to show how to serialize/deserialize an object instance to/from byte array
- * and how to check whether the deserialized object instance is equal to the object instance
- * that was used for serialization (method checkEqualsAfterSerializeDeserialize)
- */
- public class SerialUtil {
- public static byte[] serialize(Serializable serializable) throws IOException {
- if (serializable == null) {
- throw new IOException("serializable == null");
- }
- ByteArrayOutputStream baos = null;
- ObjectOutputStream oos = null;
- try {
- baos = new ByteArrayOutputStream();
- oos = new ObjectOutputStream(baos);
- oos.writeObject(serializable);
- oos.flush();
- baos.flush();
- byte[] ba = baos.toByteArray();
- return ba;
- }
- catch (IOException ioex) {
- throw ioex;
- }
- catch (Throwable t) {
- throw new IOException(t);
- }
- finally {
- if (oos != null) {
- try { oos.close(); } catch (Exception ex) { /* */ }
- }
- if (baos != null) {
- try { baos.close(); } catch (Exception ex) { /* */ }
- }
- }
- }
- public static Object deserialize(byte[] baSerializedObject) throws IOException {
- if (baSerializedObject == null) {
- throw new IOException("baSerializedObject == null");
- }
- ByteArrayInputStream bais = null;
- ObjectInputStream ois = null;
- try {
- bais = new ByteArrayInputStream(baSerializedObject);
- ois = new ObjectInputStream(bais);
- Object deserializedObject = ois.readObject();
- return deserializedObject;
- }
- catch (IOException ioex) {
- throw ioex;
- }
- catch (Throwable t) {
- throw new IOException(t);
- }
- finally {
- if (ois != null) {
- try { ois.close(); } catch (Exception ex) { /* */ }
- }
- if (bais != null) {
- try { bais.close(); } catch (Exception ex) { /* */ }
- }
- }
- }
- public static boolean checkEqualsAfterSerializeDeserialize(Serializable serializable) throws IOException {
- if (serializable == null) {
- throw new IOException("serializable == null");
- }
- byte[] ba = serialize(serializable);
- Object deserializedObject = deserialize(ba);
- if (deserializedObject == null) {
- return false;
- }
- if (!serializable.getClass().isAssignableFrom(deserializedObject.getClass())) {
- return false;
- }
- boolean bret = deserializedObject.getClass().cast(serializable).equals(serializable);
- return bret;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment