java.io.StreamCorruptedException: invalid stream header: ABACED00
来源:互联网 发布:mac office 2011 编辑:程序博客网 时间:2024/05/27 19:25
序列化和反序列化应该成对使用。我们对一个对象进行序列化之后得到的是这个对象对应的二进制数据,比如说我对一个字符串对象进行序列化之后得到是对象的二进制表示形式;如果你通过string的getBytes方法,可以得到字符串对象的数据的二进制表示形式。这两种二进制形式是不一样的,一个是对象的二进制表示,一个是对象的数据的二进制表示,前者包含了对象的数据之外还会包含一些额外的其他信息,比如说对象的序列化id等等。
因以上原因,我们就不能单单对一个没有经过序列化的二进制数据进行反序列化,
public class SerializeTest { public static void main(String args[]) { SerializeTest jt = new SerializeTest(); String s = "helloworld!"; byte[] bt = null; bt = s.getBytes(); ArrayList<String> list = new ArrayList<String>(); list=jt.getArrayList(bt);//这一行会出错。 } public ArrayList<String> getArrayList(byte[] bt) { ArrayList<String> list = new ArrayList<String>(); ObjectInputStream objIps; //注意这里,ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。问题就在这里,你是直接将byte[]数组传递过来,而这个byte数组不是使用ObjectOutputStream类写入的。所以问题解决的办法就是:用输出流得到byte[]数组。 try { objIps = new ObjectInputStream(new ByteArrayInputStream(bt)); list = (ArrayList<String>)objIps.readObject(); } catch (Exception e) { e.printStackTrace(); } return list; }
上面中就是对一个字符串对象的数据的byte字节数据进行反序列化,所以会报出标题错误。
0 0
- java.io.StreamCorruptedException: invalid stream header: ABACED00
- java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
- java.io.StreamCorruptedException: invalid stream header: 异常
- java.io.StreamCorruptedException: invalid stream header报错原因
- java.io.StreamCorruptedException: invalid stream header错误的解决方法
- java.io.StreamCorruptedException: invalid stream header报错原因
- 解决序列化中的问题java.io.StreamCorruptedException: invalid stream header:EFBFBDEF
- 由于ObjectInputstream和ObjectOutputSteam引起的java.io.StreamCorruptedException: invalid stream header: 737
- Caused by: net.sf.ehcache.CacheException: java.io.StreamCorruptedException: invalid stream header: 0
- java.io.StreamCorruptedException: invalid type code: AC
- java.io.StreamCorruptedException: invalid type code: AC
- java.io.StreamCorruptedException: invalid type code: AC异常
- .java.io.StreamCorruptedException: invalid type code: AC解决办法
- .java.io.StreamCorruptedException: invalid type code: AC解决办法
- java.io.StreamCorruptedException: invalid type code: AC解决办法
- java.io.StreamCorruptedException: invalid type code: AC解决办法
- java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
- java.io.StreamCorruptedException: invalid type code: AC解决办法
- stddef.h
- 游戏编程模式:前言(架构,性能和游戏)(Part I)
- 自定义dialog,在小米4上显示不全
- 66. Plus One
- c++类型转换
- java.io.StreamCorruptedException: invalid stream header: ABACED00
- 导出下载不带格式的word
- Java 8中的long, int, short, char 转byte数组方法
- Redis源码解析:27集群(三)主从复制、故障转移
- C语言头文件#include<unistd.h>的作用是什么?
- iOS webView textView禁止识别 电话号码.邮箱等
- 【Leetcode】Word Break II
- Oracle存储过程基本语法与基础教程(简明清楚且附实例)
- git 使用