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

一下为实现方法对象转换成字节数组用的是newObjectOutputStream(newBufferedOutputStream(byteStream));publics... 一下为实现方法
对象转换成字节数组用的是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
展开
 我来答
bd9006
2013-01-05 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
对象序列化好了。

不要是内部类。

正常的

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) );
得到结果,正常的。
PandaDream
2013-01-05 · 超过25用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:65.2万
展开全部
这个具体是因为什么,没有全部源码我也搞不清楚。给你个解决的思路你试试吧,
看一下你在调用的时候参数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;
}

用这么个方法把参数转一下,希望可以帮助到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔盒水晶
2013-01-05 · TA获得超过371个赞
知道小有建树答主
回答量:957
采纳率:0%
帮助的人:384万
展开全部
传入的文件流有问题吧...
追问
是在客户端 将对象转成byte[] 传到服务器, 再从服务器,服务器再次转发到客户端将得到byte[] 转成对象, 本机测试 互转没有问题,经过转发后报:java.io.StreamCorruptedException: invalid stream header错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式