java对象流的java.io.StreamCorruptedException问题
来源:互联网 发布:上海合作组织知乎 编辑:程序博客网 时间:2024/06/05 04:31
最近在写一个类似QQ的小程序,可以实现服务器和客户端的消息转发,其中就涉及到了java 的ObjectInputStream 和ObjectOutputStream,用来读取服务器和客户端的消息对象,可是没注意其用法导致读取时老是报错。其错误如下:![错误信息]!(http://img.blog.csdn.net/20150717191034411)
这主要是由于客户端和服务端读取使用的object流对象没匹配的原因。当ObjectOutputStream建立后第一次写入一个对象时, 会在对象数据前写入一些标志头的数据“AC ED 。之后就不写入标志,直接传输对象。而ObjectInputStream构造方法中:
public ObjectInputStream(InputStream in) throws IOException {
verifySubclass();
bin = new BlockDataInputStream(in);
handles = new HandleTable(10);
vlist = new ValidationList();
enableOverride = false;
readStreamHeader(); //去读取标志头
bin.setBlockDataMode(true);
}
当创建一个ObjectInputStream对象时,会去读取标志头。因此当发送端创建一个ObjectOutputStream对象时,客户端就需要创建一个新的ObjectOutputStream对象去读取数据。其一般写法都是在while(true)循环中进行new操作,这样才保证每次发送接收端的对象都是新创建的,不会出现流异常错误。
0 0
- java对象流的java.io.StreamCorruptedException问题
- java.io.StreamCorruptedException: invalid type code: AC异常和对象流锁机制问题
- java.io.StreamCorruptedException翻译
- 存储两次序列化对象,读取报错问题 java.io.StreamCorruptedException: invalid type code: A
- java.io.StreamCorruptedException: invalid stream header错误的解决方法
- java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
- java.io.StreamCorruptedException: invalid type code: AC
- java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
- java.io.StreamCorruptedException: invalid stream header: ABACED00
- Socket 报java.io.streamcorruptedexception异常
- java.io.StreamCorruptedException: invalid type code: AC
- java.io.StreamCorruptedException: invalid stream header: 异常
- 多次创建object 写入对象文件中.java.io.StreamCorruptedException: invalid type code: AC解决办法
- 解决序列化中的问题java.io.StreamCorruptedException: invalid stream header:EFBFBDEF
- 由于ObjectInputstream和ObjectOutputSteam引起的java.io.StreamCorruptedException: invalid stream header: 737
- java.io.StreamCorruptedException: invalid stream header报错原因
- java.io.StreamCorruptedException: invalid type code: AC异常
- .java.io.StreamCorruptedException: invalid type code: AC解决办法
- VS:"64位调试操作花费的时间比预期要长"的一解决途径
- mac安装java开发环境(jdk+eclipse+maven+svn)
- web.ctx获得客户端信息
- java字符串的学习
- CocoaPods详解之----进阶篇
- java对象流的java.io.StreamCorruptedException问题
- python 脚本在cmd下运行
- NSDate中SDK使用
- IOS开发日志-网络安全
- OC_继承,便利构造器,初始化方法
- 数组
- 进程间通讯的几种方式
- DirectX11 视口
- bzoj 2502 有上下限的最小流