可以做到//对像变成节数组
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());
}
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());
}
private static final long serialVersionUID = 4189184276885658064L;(数字乱写就可)
不然还原不了,并且这种还原只能在同一个JVM下实现,你传到别的机器的JVM上可能会还原不了,这点我没测试而且如果你的对像有改动,重新编译成的CLASS,那以前的数据也可能也还原不了,所以我一般的做法是把对像里的属性提出出来生成一个JDK自带的类存放这些属性,如VECTOR HASHMAP等,传送时传这种JDK的类就没这种问题了,只是你的接收端要依这些传过来的属性重新生成对像,这样做最稳定了(因为我们做的是把对像字节数组保存在数据库里,以后再还原出来)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
http://www.computersci.net/articles/jdk1.2/docs/guide/rmi/faq.html