Kryo框架的获取、基本应用例子
来源:互联网 发布:php前景怎么样 编辑:程序博客网 时间:2024/05/01 15:23
Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边的Download Zip按钮,就能下载到最新版本的Kryo框架。
导入Eclipse时,记得JDK/JRE选用 JDK1.7版本,因为Kryo会引用到unsafe()对象的一些方法JDK1.7才兼容。。
先来一个String类的序列化跟还原,是不是很简单?
</pre><pre name="code" class="java">private static void testString () {Kryo kryo=new Kryo();String w_str1="简体中文,繁體中文,English";//把w_str1对象序列化Output output=new Output(1024);kryo.writeObject(output, w_str1);output.flush();output.close();byte[] w_ret= output.toBytes(); //获得byte数据,这些数据可用作储存、网络传输等...//还原Input input=new Input(w_ret);input.close();String w_str2=kryo.readObject(input, String.class);System.out.println(w_str2);}
再来一个HashMap类的序列化跟还原,因为Kryo自带了很多java基本类的Serializer,所以尽管不知道Serializer,Kryo也会自动匹配:
public static void testHashMap() throws NoSuchAlgorithmException{Kryo kryo=new Kryo();HashMap h=new HashMap();h.put("k1", "v1");h.put("k2", "v2");Output output=new Output(1, 1024);kryo.writeObject(output, h);output.close();byte[] data=output.toBytes();Input i=new Input(data);i.close();HashMap h2= (HashMap)kryo.readObject(i, HashMap.class);System.out.println(h2.get("k2"));}
1、先定义Bean TestBean:
public static class TestBean implements Serializable{private int[] intArray;private HashMap<String,String> hashMapVal;private String strVal;public int[] getIntArray () {return intArray;}public void setIntArray (int[] intArray) {this.intArray = intArray;}public HashMap<String, String> getHashMapVal () {return hashMapVal;}public void setHashMapVal (HashMap<String, String> hashMapVal) {this.hashMapVal = hashMapVal;}public String getStrVal () {return strVal;}public void setStrVal (String strVal) {this.strVal = strVal;}}
2、因为这是自定义的Bean,Kryo在序列化前先要对TestBean进行注册:kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); ,具体例子如下:
public static void testBean() throws NoSuchAlgorithmException{Kryo kryo=new Kryo();kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); TestBean tb1=new TestBean();tb1.setStrVal("test1");tb1.setHashMapVal(new HashMap<String,String>());tb1.getHashMapVal().put("k1", "v1");tb1.getHashMapVal().put("k2", "v2");int[] ints=new int[3];ints[0]=1;ints[1]=2;ints[2]=3;tb1.setIntArray(ints);Output output=new Output(1, 1024);kryo.writeObject(output, tb1);output.close();byte[] data=output.toBytes();
Input i=new Input(data);i.close();TestBean tb2= (TestBean)kryo.readObject(i, TestBean.class);System.out.println(tb2.strVal);System.out.println(tb2.hashMapVal.get("k1"));System.out.println(tb2.intArray[2]);}
是不是非常简单?好了,下一篇文章讲述如何在序列化的同时进行数据的加密。。。
转载请注明出处:http://blog.csdn.net/rocklee
0 0
- Kryo框架的获取、基本应用例子
- Kryo框架的获取、基本应用例子
- Kryo:快速、高效的序列化框架
- Kryo:快速、高效的序列化框架
- 整合SSH框架最基本的例子
- 应用框架的基本思想
- 应用基本框架的搭建
- play框架的基本应用
- 获取网络应用比较好的例子
- Kryo序列化框架简介
- java序列化 KRYO框架
- JAVA序列化 框架 Kryo
- kryo的速度测试
- Kryo 的简介
- Kryo
- 工作流框架JBPM的基本应用
- 工作流框架JBPM的基本应用
- 应用基本springmvc框架的小demo
- Linux 环境变量、一些我用到的命令 做个备份
- 解决方案:treeview右击菜单ContextMenu的MenuItem Command绑定不可用。
- 用shell脚本,指定两个日期,计算相隔天数
- Dynamics Crm2011 Removes an option from an Option Set control
- U转串口驱动安装
- Kryo框架的获取、基本应用例子
- pid=1010_Tempter of the Bone
- ibatis插入返回主键
- 使用sitemesh的decorators功能
- 想学编程?这样开始
- User Header Search Paths 与 Header Search Paths
- SQL Server2005数据库优化报告
- CSS漂浮 让图片飘在页面的外面
- 利用正则截取字符串