java 对象转换成字节数组, 字节数据转成对象,出现错误请高手指教

2024-12-16 08:18:23
推荐回答(3个)
回答1:

对象序列化好了。

不要是内部类。

正常的

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) );
得到结果,正常的。

回答2:

这个具体是因为什么,没有全部源码我也搞不清楚。给你个解决的思路你试试吧,
看一下你在调用的时候参数byte[] buffer是怎么获得的,是否是通过ObjectOutputStream写入的 如果不是的话,
public byte[] getByte(ArrayList list) {
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;
}

用这么个方法把参数转一下,希望可以帮助到你。

回答3:

传入的文件流有问题吧...