将非可序列化对象转换为字节数组

时间:2014-02-22 10:05:29

标签: android object serialization bytearray android-support-library

希望大家都没事。

我只是想知道,如何在没有non-serializable的情况下将serialization对象转换为字节数组?

在搜索了一段时间后,我知道在C#中可以使用自定义库(例如 BinaryFormatter )等等。是否有任何库可以在Android中完成这项工作?

提前致谢

注意:实现Serializable对象不是一个选择,已经尝试过很多次尝试。

1 个答案:

答案 0 :(得分:-1)

public byte[] toByteArray (Object obj)
{
  byte[] bytes = null;
  ByteArrayOutputStream bos = new ByteArrayOutputStream();
  try {
    ObjectOutputStream oos = new ObjectOutputStream(bos); 
    oos.writeObject(obj);
    oos.flush(); 
    oos.close(); 
    bos.close();
    bytes = bos.toByteArray ();
  }
  catch (IOException ex) {
    //TODO: Handle the exception
  }
  return bytes;
}

public Object toObject (byte[] bytes)
{
  Object obj = null;
  try {
    ByteArrayInputStream bis = new ByteArrayInputStream (bytes);
    ObjectInputStream ois = new ObjectInputStream (bis);
    obj = ois.readObject();
  }
  catch (IOException ex) {
    //TODO: Handle the exception
  }
  catch (ClassNotFoundException ex) {
    //TODO: Handle the exception
  }
  return obj;
}