ObjectInputStream中的java.io异常

时间:2011-12-22 09:27:58

标签: java inputstream

我已通过gps设备连接了我的服务器。而对于读取数据我正在使用代码

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());  

产生以下异常:

java.io.StreamCorruptedException: invalid stream header: 24312C38
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
at com.tm4u.ServerSocketExample.main(ServerSocketExample.java:34)

2 个答案:

答案 0 :(得分:1)

该异常表明您从套接字获取的数据流不是有效的对象流。对象流旨在读取由Java进程序列化的Java对象。如果您正在从GPS设备读取数据,我怀疑这是设备发送的流的类型。

答案 1 :(得分:0)

我确定你需要使用 DataInputStream BufferedInputStream InputStreamReader 来从GPS设备读取数据。

ObjectInputStream 用于读取其他应用程序通过 ObjectOutputStream 发送的Java对象。这些是不太兼容的流。例如:JVM对象序列化协议必须相同。我怀疑GPS设备制造商是否设计了这种设备。