UserInfo obj;
ByteArrayOutputStream bo  = new ByteArrayOutputStream();
ObjectOutputStream output = new ObjectOutputStream(bo);
output.writeObject(obj);
byte[] bytes = bo.toByteArray();
String byteStr = new String(bytes);
这样就可以了。

解决方案 »

  1.   

    恩,同意楼上的
    还原的时候:
    byte[] bytes = byteStr.toByteArray();
    ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
    ObjectInputStream input = new ObjectInputStream(bi);
    UserInfo obj = (UserInfo) input.readObject();
      

  2.   

    还原的时候出错了
    byte[] bytes = btyeStr.getBytes();
    ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
    ObjectInputStream input = new ObjectInputStream(bi);
    UserInfo obj = (UserInfo) input.readObject();异常:OptionalDataException
      

  3.   

    楼上的代码好像有问题啊
    至少String没有toByteArray()这个方法
    我用getBytes()代替了之后还是报异常
      

  4.   

    不好意思,是我疏忽了!
    但将这个String还原成byte[]时,和原来的byte[]并不相等。
    这个我也不知道到底是因为什么,可能是因为通过这个byte[]所生成的String是一堆乱码而导致部分无法还原的原因吧。
    使用byte[]保存一点问题都没有,如果用byte[]不能解决问题,可以按自己的格式生成一个String,只要能保证还原时和原来的byte[]值一样就可以了。