java中Protobuf的使用实例
来源:互联网 发布:域名免费备案 编辑:程序博客网 时间:2024/05/17 01:13
最近公司项目中有埋点的需求,采用的是protocolbuffer的数据格式,所以去研究了protobuf的使用,在此记录一下
1.什么是protocolbuffer?
protocol buffer是google的一个开源项目,它是用于结构化数据串行化的灵活、高效、自动的方法,例如XML,不过它比xml更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。
2.使用
2.1下载protoc-2.4.1-win32.zip,http://download.csdn.net/detail/tiandiwuya/9792888
2.2下载 一个protobuf-Java-2.4.1.jar文件,http://download.csdn.net/detail/tiandiwuya/9792889
2.3.用记事本编写一个.proto文件:
如:我编写的是msg.proto
package protobuf;
option java_package = "com.sq.protobuf";
option java_outer_classname = "FirstProtobuf";
message testBuf {
required int32 ID = 1;
required string Url = 2;
}
option java_package = "com.sq.protobuf";
option java_outer_classname = "FirstProtobuf";
message testBuf {
required int32 ID = 1;
required string Url = 2;
}
将其放在与刚解压的protoc.exe同级目录中。
2.4使用如下命令编译这个文件:
2.5将生成的FirstProtobuf.java文件引入eclipse,把下载的protobuf-java-2.4.1.jar也引入工程protoc.exe --java_out./ msg.proto
2.6建立测试文件
public class test2 {public static void main(String[] args) {//序列化FirstProtobuf.testBuf.Builder builder = FirstProtobuf.testBuf.newBuilder();builder.setID(117);builder.setUrl("bangde");// testBufFirstProtobuf.testBuf info = builder.build();byte[] result = info.toByteArray();System.out.println("反序列化过程:"+result.toString());//反序列化过程try {FirstProtobuf.testBuf testBuf = FirstProtobuf.testBuf.parseFrom(result);System.out.println("反序列化过程:"+"\n"+testBuf);} catch (InvalidProtocolBufferException e) {e.printStackTrace();}}}结果:
0 0
- java中使用Protobuf的实例(Demo)
- java中使用Protobuf的实例(Demo)
- java中使用Protobuf的实例(Demo)
- java中Protobuf的使用实例
- java中使用protobuf
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- protobuf 的java使用
- protoBuf的使用---java
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- 【JAVA】protobuf的使用
- Protobuf笔记以及Java Javascript使用实例
- protobuf for java 的使用
- Protobuf在java中使用例子
- java中使用grpc和protobuf
- 优秀的protobuf实例
- 蓝桥杯-K好数(java)
- Struts2的Action访问ServletAPI的方式
- 大数据SQL查询优化
- 转http://www.jb51.net/article/67718.htm从键盘输入字符的方法
- python with..as.. __call__ __enter__ __exit__
- java中Protobuf的使用实例
- 猴子分桃问题
- 干货来了,手把手教你Android自定义饼状图,带加载动画!
- yii2 rules & scenario
- C语言的可变参数表函数的设计
- Gson转化为对象
- React学习之高级DOM元素属性(二十六)
- 分布式游戏服务器框架sframe(五)—— 配置管理
- iOS下使用FFMPEG所需的Frameworks