StreamCorruptedException:Valid Stream Header
有谁知道这是这么回事吗
我是在用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




