可以做到//对像变成节数组
   ByteArrayOutputStream buffers = new ByteArrayOutputStream();
   try{
     ObjectOutputStream out = new ObjectOutputStream(buffers);
     out.writeObject(你的对像变量);
     out.close();
   }catch(Exception e){
       System.err.print(e.getMessage());
       return null;
   }
   return buffers.toByteArray();//这里返回的就是你对像的字节数组了//字节数组还原为对像
   data[]=.....
   你对像的类型 obj;
   try{
     ByteArrayInputStream buffers = new ByteArrayInputStream(data);
     ObjectInputStream in = new ObjectInputStream(buffers);
     obj=(你对像的类型) in.readObject(); //obj就是你还原回来的对像了
     in.close();
   }catch(Exception e){
       System.err.print(e.getMessage());
   }

解决方案 »

  1.   

    需要提醒的一点,如果是你自己写的对像,需要在对像里写上
    private static final long serialVersionUID =  4189184276885658064L;(数字乱写就可)
    不然还原不了,并且这种还原只能在同一个JVM下实现,你传到别的机器的JVM上可能会还原不了,这点我没测试而且如果你的对像有改动,重新编译成的CLASS,那以前的数据也可能也还原不了,所以我一般的做法是把对像里的属性提出出来生成一个JDK自带的类存放这些属性,如VECTOR HASHMAP等,传送时传这种JDK的类就没这种问题了,只是你的接收端要依这些传过来的属性重新生成对像,这样做最稳定了(因为我们做的是把对像字节数组保存在数据库里,以后再还原出来)
      

  2.   

    java.io Interface Serializable private void writeObject(java.io.ObjectOutputStream out)
         throws IOException
     private void readObject(java.io.ObjectInputStream in)
         throws IOException, ClassNotFoundException;
      

  3.   

    RMI 和对象序列化常见问题 
    http://www.computersci.net/articles/jdk1.2/docs/guide/rmi/faq.html