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

一下为实现方法
对象转换成字节数组用的是new ObjectOutputStream(new BufferedOutputStream(byteStream));
public static Object byteArrayToObject(byte[] buffer) {
Object ob = null;
ObjectInputStream ois = null;
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(buffer);
ois = new ObjectInputStream(bais);
ob = ois.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null!=ois) {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(null!=bais) {
try {
bais.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return ob;
}

运行包如下错误:
java.io.StreamCorruptedException: invalid stream header
对橡渗象序列化好了。

不要是内让轮部类。

正梁滑脊常的

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<String> 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;
}

用这么个方法把参数转一下,希望可以帮助到你带闹肢。
传入的文件流有问题吧...