前言

今天想使用的kryo替换掉原本java自带的序列化方式,原因是kryo的序列化速度实在是太香了,比Java至少高出了近4倍(但是kryo也有缺点,不够成熟,bug多,跨语言难等),这些都不是正点

错误

在测试1w数据的时候,反序列化一直失败,抛出下面的错误

  com.esotericsoftware.kryo.KryoException: Buffer underflow.

缓存溢出???!我原先还以为是数据太大了,就缩小数据量试一下,还是不行
尝试google,度娘都没有结果

下面先看看我的代码吧(下面的代码都是简化测试版)

原本的代码

写入

FileOutputStream os = new FileOutputStream (file)
Kyro kyro = new Kyro();
Output output = new Output (os);
kyro.writeClassAndObject(output ,object);
os .close()
output .close();

读取

FileInputStream is = new FileInputStream (file)
Kyro kyro = new Kyro();
Input input = new Intput (is);
kyro.readClassAndObject(output ,object);
is .close()
input .close();

成功后的代码


Kyro kyro = new Kyro();
Output output = new Output (os);
kyro.writeClassAndObject(new FileOutputStream (file),object);
output .close();

后记

没错,只是修改了一个FileOutputStream 的关闭而已。
在我测试1条数据的时候,发现写入序列化文件总是为null,我就意识到事情应该没有那么复杂了,
反复测试发现,如果存在使用FileOutputStream.close(),那么写入文件就会丢失

我也搞不懂原因再哪儿??

kryo com.esotericsoftware.kryo.KryoException: Buffer underflow.相关推荐

  1. spark:报错com.esotericsoftware.kryo.KryoException: Buffer underflow.

    场景 spark-sql跑一个较大的任务,数据落盘时报错: com.esotericsoftware.kryo.KryoException: Buffer underflow. Caused by: ...

  2. 【Dubbo】序列化异常—— com.esotericsoftware.kryo.KryoException: Buffer underflow

    Dubbo服务通常依赖一个jar包来表示服务签名,其中包含了服务的接口定义. 服务的提供者(服务端)需实现这些接口: 服务的调用者(客户端)可以通过这些接口调用服务. 问题 此文提到的异常 " ...

  3. com.esotericsoftware.kryo.KryoException: Buffer underflow. 解决

    用kryo进行序列化和反序列化的时候,序列化的过程很顺利,反序列化的过程中遇到报错KryoException: Buffer underflow. 代码如下: //其中path是将序列化对象保存的路径 ...

  4. EsotericSoftware Kryo —— 官方(1)

    kryo是什么 kryo 是一个针对Java的快速,高效的二进制对象图形序列化框架. kryo目标 kryo的目标是高速.占用空间小.并且有简单好用的api 随时为Java对象提供持久化的能力,包括持 ...

  5. 使用Jetcache过程的bug之Buffer underflow

    业务场景 - 使用Jetcache+springCloud相关组件 - 线上A服务缓存用户信息到jetcache中,但是其他服务读取不到缓存,本地可以正常获取. 猜测 - 怀疑是key错误,但是代码没 ...

  6. CWE-124: Buffer Underwrite ('Buffer Underflow') (缓冲区下界之下写入)

     ID: 124 类型:基础 结构:简单 状态:未完成 描述 软件使用在缓冲区起始内存地址之前的位置索引或指针进行相应位置的写入操作. 扩展描述 这通常发生在指针或其索引递减到缓冲区起始位置之前的位置 ...

  7. 解决librdkafka 报WARN:Protocol read buffer underflow

    https://github.com/edenhill/librdkafka/issues/1660 RT,公司的kafka更换了版本, 用到librdkafka的场景就开始报这条警告 解决方式如下: ...

  8. avro和java原生序列化的区别,java原生序列化和Kryo序列化性能比较

    简介 最近几年,各种新的高效序列化方式层出不穷,不断刷新序列化性能的上限,最典型的包括: 专门针对Java语言的:Kryo,FST等等 跨语言的:Protostuff,ProtoBuf,Thrift, ...

  9. krait和kryo_java原生序列化和Kryo序列化性能比较

    简介 最近几年,各种新的高效序列化方式层出不穷,不断刷新序列化性能的上限,最典型的包括: 专门针对Java语言的:Kryo,FST等等 跨语言的:Protostuff,ProtoBuf,Thrift, ...

  10. 【第36题】JAVA高级技术-对象克隆5(几种深克隆效率比较)

    回城传送–><JAVA筑基100例> 文章目录 零.前言 一.题目描述 二.解题思路-序列化克隆 三.代码详解 原生序列化和Kryo序列化性能比较 结论 四.推荐专栏 五.示例源码下 ...

最新文章

  1. copy,mutableCopy,retain区别
  2. 菜鸟系列docker——docker基本概念(1)
  3. C++学习笔记(草稿版)
  4. [BZOJ1222/Luogu2224][HNOI2001]产品加工
  5. Java的内存--存储
  6. 第一台定制商用NAS存储服务器
  7. iOS开发笔记--Layer 图层圆角、边框 、底纹其他常用操作
  8. java enum类探索
  9. c lambda表达式 select 改变字段名称_大神是如何学习 Go 语言之浅谈 select 的实现原理...
  10. matlab plot3 宽度,matlab设置plot图像尺寸大小、坐标轴等
  11. mysql如何创建用户代码_mysql 创建用户 并 受权_mysql
  12. 【风马一族_气味】组成气味的基本成分探索
  13. PCM音频处理一:分离左右声道音频
  14. 【MySQL】分组查询
  15. 报道 | 香港科技大学三十周年校庆红鸟之夜庆祝晚宴圆满落幕
  16. 最近在玩游戏:魔兽世界
  17. 安卓手机屏幕分辨率怎么调整
  18. 猿创征文 | 什么是PHP,PHP如何创建数据库
  19. 刺刀还在,理想已经滑落——“中国黑客”10年嬗变
  20. Pandas处理日期数据的常见操作集锦

热门文章

  1. 计算机专业动漫设计毕业论文,计算机动漫设计与制作专业毕业论文.doc
  2. HDR:Recovering High Dynamic Range Radiance Maps from Photographs
  3. python--快速启动Server
  4. cannot find -lGL
  5. android精选源码,erp交互效果摩天轮高仿斗鱼直播View炫酷进度条源码
  6. 技术天才米勒 oracle,奇迹中的奇迹 WW之功能炫技篇
  7. 多功能计算机如何关闭,电脑教程:键盘关闭fn多功能键盘
  8. 【亲测有效】C盘扩展卷灰色的解决办法
  9. Codeforces 417 D. Cunning Gena
  10. mac OS系统中 设置ssh连接端口