CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

StreamCorruptedException:Valid Stream Header

楼主craks()2002-03-27 12:03:29 在 Java / J2SE / 基础类 提问

有谁知道这是这么回事吗  
   
  我是在用ObjectOutputStream,ObjectInputStream时遇到的 问题点数:100、回复次数:9Top

1 楼hht(影舞者)回复于 2002-03-27 12:08:59 得分 20

你传输的对象格式不对Top

2 楼craks()回复于 2002-03-27 12:27:03 得分 0

什么格式Top

3 楼hht(影舞者)回复于 2002-03-27 12:49:05 得分 0

写出代码Top

4 楼craks()回复于 2002-03-27 14:38:44 得分 0

class   A   implements   Serializable{}  
  class   B   implements   Serializable{  
      Vector   c=new   Vector();  
      public   addA(A   a){  
          c.addElement(a);  
      }  
  }  
  out   是ObjectOutputStream的实例  
  B   b=new   B();  
  out.writeObject(b);Top

5 楼xhh(霹雳游侠)回复于 2002-03-27 15:06:52 得分 40

我编了一个程序试了一下,没有问题:  
   
  import   java.util.*;  
  import   java.io.*;  
   
  class   A   implements   Serializable{}  
  public   class   B   implements   Serializable{  
  Vector   c   =   new   Vector();  
  public   void   addA(A   a){  
  c.addElement(a);  
  }  
  public   static   void   main(String[]   args)   throws   IOException{  
  B   b=new   B();  
  b.addA(new   A());  
  b.addA(new   A());  
  b.addA(new   A());  
  FileOutputStream   fos   =   new   FileOutputStream("E:\\XHH\\temp\\test.xhh");  
  ObjectOutputStream   oos   =   new   ObjectOutputStream(fos);  
  oos.writeObject(b);  
  }  
  }  
  Top

6 楼craks()回复于 2002-03-27 15:36:51 得分 0

你得readObject()才会出错Top

7 楼GJA106(中文字符)回复于 2002-03-27 15:47:33 得分 40

客户端:  
  mVector.addElement("aa");  
            mVector.addElement("bb");  
            try  
            {  
                mSocket   =   new   Socket("192.188.0.5",9009);  
   
                dos   =   new   DataOutputStream(mSocket.getOutputStream());  
                ObjectOutputStream   oos   =   new   ObjectOutputStream(dos);  
                oos.writeObject(mVector);  
            }  
            catch(Exception   eSocket)  
            {  
            }  
   
  服务端:  
  try  
            {  
                mServerSocket   =   new   ServerSocket(9009,15);  
                mSocket   =   mServerSocket.accept();  
   
                dis   =   new   DataInputStream(mSocket.getInputStream());  
                ObjectInputStream   ois   =   new   ObjectInputStream(dis);  
                mVector   =   (Vector)ois.readObject();  
                for(int   i   =   0   ;   i   <   mVector.size();   i   ++)  
                {  
                    System.out.println("输出:"   +   (String)mVector.elementAt(i));  
                }  
            }  
            catch(Exception   eSocket)  
            {  
            }Top

8 楼craks()回复于 2002-03-27 17:27:33 得分 0

在Vector中加入Stirng当然是对的,但我是自己定义的类,并实现了Serializable接口,可是他却说是StreamCorruptedException:Valid   Stream   Header,有人说是非法的Vector,可我一直不太明白,A不是也实现了  
  Serializable接口,难道这还错,我都快疯了,  
  呵呵,我已将分加到了100,希望各位能帮我Top

9 楼craks()回复于 2002-03-28 10:04:40 得分 0

我已经解决了,ObjectOutputStream应该放在ObjectInputStream前,不知道是不是bug,呵呵。  
   
  还是谢谢各位Top

相关问题

  • 导入数据出现IMP-00010 not a valid export file, header failed verification 错误提示!
  • header的问题
  • header的问题
  • header()的问题
  • 关于header!
  • header的问题.
  • header的用法
  • 关于Module:Header
  • header问题
  • header的问题

关键词

  • vector
  • adda
  • mvector
  • objectoutputstream
  • msocket
  • addelement
  • writeobject
  • oos
  • implements serializable

得分解答快速导航

  • 帖主:craks
  • hht
  • xhh
  • GJA106

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo