Protostuff序列化和反序列化的使用说明

  

大家都知道protobuf好用,可是在网上找到的网状的整合protobuf的文章都是千篇一律,自己编写原型文件然后使用工具转java文件用起来复杂麻烦,经过不懈努力终于找到了一个简单的方法希望大家喜欢。

  

谷歌原生的protobuffer使用起来相当麻烦,首先要写.proto文件,然后编译.proto文件,生成对应的. java文件,鄙人试了一次,发现真的很麻烦。而protostuff的官方网站(http://www.protostuff.io/documentation/runtime-schema/),对于智商比较低的小编来说也略显生涩,于是鄙人就根据项目中用到的protostuff,撰写此文,以方便自己和他人加深印象和学习。

  

<强> 1。实战

  

<强> 1. maven依赖:

        & lt; dependency>   & lt; groupId> io.protostuff   & lt; artifactId> protostuff-core   & lt; version> 1.4.0   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.protostuff   & lt; artifactId> protostuff-runtime   & lt; version> 1.4.0   & lt;/dependency>      

<强> 2. protobufutil工具类:ProtoBufUtil.java

        进口io.protostuff.LinkedBuffer;   进口io.protostuff.ProtobufIOUtil;   进口io.protostuff.ProtostuffIOUtil;   进口io.protostuff.Schema;   进口io.protostuff.runtime.RuntimeSchema;/* *   *由zhangzh>   进口io.protostuff.Tag;/* *   *由zhangzh schoolName=" + schoolName \“+ +”   '} ';   }   }      

<强> 3.测试类ProtoBufUtilTest.java:,,

        进口java.util.Arrays;/* *   *由zhangzh 2017/2/20。   */公开课ProtoBufUtilTest {   公共静态void main (String [] args) {   学生学生=new ();   student.setName(“兰斯”);   student.setAge (28);   student.setStudentNo (“2011070122”);   student.setSchoolName (“BJUT”);   byte [] serializerResult=ProtoBufUtil.serializer(学生);   system . out。println(“序列化器结果:”+ Arrays.toString (serializerResult));   学生deSerializerResult=ProtoBufUtil.deserializer (serializerResult Student.class);   system . out。println (“deSerializerResult:”+ deSerializerResult.toString ());   }   }      

<>强4。输出结果:,,

  
  

序列化器结果:[10,108,97,110,99,101,18日,10日,50岁,48岁,49岁,49岁,48岁,55岁,48岁,49岁,50岁,50岁,24岁,28岁,34岁,4,66,74,85,84]
  deSerializerResult:学生{name=袄妓埂?studentNo=' 2011070122 '=28岁schoolName=' BJUT}
  

     

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

Protostuff序列化和反序列化的使用说明