初识protobuf(java)
来源:互联网 发布:xcode怎么编写python 编辑:程序博客网 时间:2024/06/15 03:43
- 简介
- maven
- protoc-320-win32下载地址
- 环境变量配置
- 验证
- eclipse 插件下载
- 测试
- proto文件
- 生成Java对象命令
- 测试代码
- 输出
- 测试
- 参考文章
简介
protobuf 是google 开发一个款序列化传输协议,它独立于语言,独立于平台;目前它提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。
下面介绍使用的是目前最新版本: 3.2
maven
<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.2.0</version> </dependency>
protoc-3.2.0-win32下载地址
http://download.csdn.net/download/zsj897897/9821364
环境变量配置
将protoc-3.2.0-win32 解压到某一文件夹,在环境变量path路径(我的是:D:\software\protoc-3.2.0-win32\bin)
验证
C:\Users\Administrator>protoc --versionlibprotoc 3.2.0
eclipse 插件下载
Eclipse Marketplace --> 搜索 "protobuf-dt" 安装"protobuf-dt-2.2.1"
测试
proto文件
syntax="proto3"; # 使用协议版本option java_outer_classname="SearchRequestEntity"; # 生成的.java 文件名称message SearchRequest { # 最终对象名称同message 名称string searchString =1;int32 page_number = 2;int32 page_size = 3;}
生成Java对象命令
protoc.exe -I=proto的输入目录 --java_out=java类输出目录 proto的输入目录包括包括proto文件例如:C:\Users\Administrator>protoc -I=D:/develporDir/CODE/workspace/test-protobuf/src/main/java/com/jiazq/test/protobuf/proto --java_out=D:/develporDir/CODE/workspace/test-protobuf/src/main/java/com/jiazq/test/protobuf/entity D:/develporDir/CODE/workspace/test-protobuf/src/main/java/com/jiazq/test/protobuf/proto/person-entity.proto
测试代码
package com.jiazq.test_protobuf;import com.jiazq.test.protobuf.entity.PersionEntity;public class PersionTest { public static void main(String[] args) { PersionEntity.Persion.Builder builder = PersionEntity.Persion.newBuilder(); builder.setEmail("281460530@qq.com"); builder.setOnline(true); builder.setPassword("ricisung"); builder.setPhoneNumber("18320928860"); builder.setUserName("jiazq"); builder.setUserId(12345); PersionEntity.Persion persion = builder.build(); System.out.println(persion.toString()); System.out.println("---------序列化开始----------"); for (byte b: persion.toByteArray()) { System.out.print(b); } System.out.println(); byte[] byteArray = persion.toByteArray(); System.out.println("字节长度:" + byteArray.length); System.out.println("字节长度:" + persion.toByteArray().length); }}
输出
userId: 12345userName: "jiazq"password: "ricisung"email: "281460530@qq.com"phoneNumber: "18320928860"online: true---------序列化开始----------8-71961851061059712211326811410599105115117110103341650564952544853514864113113469911110942114956515048575056565448481字节长度:53字节长度:53---------反序列化开始-----userId: 12345userName: "jiazq"password: "ricisung"email: "281460530@qq.com"phoneNumber: "18320928860"online: true
参考文章
http://blog.csdn.net/antgan/article/details/52103966
0 0
- 初识protobuf(java)
- 初识protobuf
- 初识Protobuf
- 初识protobuf
- protobuf java
- protobuf java编码基础 (转载)
- Java中的Protobuf使用例子(转)
- protobuf 3.5 java使用介绍(一)
- Java初识(2)
- Java线程(初识)
- JAVA初识(二)
- JAVA初识(三)
- protobuf java编码基础
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- protobuf 的java使用
- protoBuf的使用---java
- 【拓展欧几里得求逆元】51nod1256 51nod1119 Light1067
- HDU 2565 放大的X
- 主成分分析代码实现
- C语言栈的演示(入栈,弹栈,遍历)
- 深入理解Python中的基本数据类型
- 初识protobuf(java)
- ~数值的整数次方~
- 作业六
- CSS3 box-shadow div的阴影样式
- Python自定义豆瓣电影种类,排行,点评的爬取与存储(初级)
- Android 5.0 + IDA 6.8 调试经验分享
- Skia深入分析
- struts2环境问题总结
- &#X开头的文本,怎么转换为汉字