对象序列化好了。
不要是内部类。
正常的
public Object byteArrayToObject(byte[] buffer)throws Exception{
Object ob = null;
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
ob = ois.readObject();
ois.close();
return ob;
}
public byte[] ObjectToByteArray(DemoObject obj)throws Exception{
byte [] bytes=null;
ByteArrayOutputStream baos= new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
oos.close();
bytes=baos.toByteArray();
baos.close();
return bytes;
}
调用示范
test.byteArrayToObject( test.ObjectToByteArray(demo) );
得到结果,正常的。
这个具体是因为什么,没有全部源码我也搞不清楚。给你个解决的思路你试试吧,
看一下你在调用的时候参数byte[] buffer是怎么获得的,是否是通过ObjectOutputStream写入的 如果不是的话,
public byte[] getByte(ArrayList
byte[] bt=null;
ByteArrayOutputStream baos=new ByteArrayOutputStream();
try{
if(list!=null)
{
ObjectOutputStream objos=new ObjectOutputStream(baos);
objos.writeObject(list);
bt=baos.toByteArray();
}
}catch(Exception e)
{
bt=(byte[])null;
e.printStackTrace();
}
return bt;
}
用这么个方法把参数转一下,希望可以帮助到你。
传入的文件流有问题吧...