关于对象流的读写

duzunwu512 2006-12-25 11:17:54
服务器端写入流:
outObject.writeObject(object);
outObject.flush();

客户端读入流:

Object o = null;
if((o=in.readObject())!=null){
System.out.println(o.toString());
}

运行结果:


999999999999999

java.io.StreamCorruptedException: invalid stream header

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737)

at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)

at catic.hotel.common.SocketStream.getObjectInputStreamFromSocket(SocketStream.java:34)

at catic.hotel.server.server.TestClient.writeObject(TestClient.java:31)

at catic.hotel.server.server.TestClient.run(TestClient.java:57)


请问这是怎么回事,为什么会抛出这个异常,String实现了Serializable的呀
...全文
226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongshisou 2006-12-25
  • 打赏
  • 举报
回复
同时搜网(www.tongshisou.com)是一个很有创意的搜索网站,是目前最易用,最方便的整合搜索网站,本身不做搜索却把业界的搜索引擎聚合在自己网站中,包括百度,GOOGLE,YAHOO,中搜,爱问,搜狗,奇虎,腾讯搜搜,OPENV,TVIX,有网页 新闻 图片 音乐 视频 地图 工作 餐饮 的搜索,可谓很全哦,搜索起来确实方便,而且很易用,可以把结果同时在一个网页中以分割条形式分开,而且可以分割成2-4个窗口,大家可以一试哦www.tongshisou.com
duzunwu512 2006-12-25
  • 打赏
  • 举报
回复
请fool_leave(请及时结贴)看贴: Socket流的建立

解决结帐
fool_leave 2006-12-25
  • 打赏
  • 举报
回复
没有具体代码,出错行的代码,怎么说呢


估计是你的流建立的问题
Object流在建立的时候会发送头信息,所以一定要在发送数据的时候建立。
ObjectOutputStream oos=new ObjectOutputStream(socket.getOutputStream());
oos.writeObject("aaa");
oos.flush();

读取的地方一样

BTW:建议每次发送的时候都new一个ObjectOutputStream

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧