protocol buff是一种协议,是谷歌推出的一种序列化协议 .Java序列化协议也是一种协议
两者的目的是,将对象序列化成字节数组,或者说是二进制数据
导包
<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.5.1</version> </dependency>
创建 demo.proto 文件
option java_package = "com.proto"; option java_outer_classname = "PlayerModule"; message PBPlayer{ required int64 playerId = 1; required int32 age = 2; required string name = 3; repeated int32 skills = 4; } message PBResource{ required int64 gold = 1; required int32 energy = 2; }
由工具protoc.exe 使用 bat命令 生成 Java文件
protoc ./proto/*.proto --java_out=./src pause
对象序列化
//获取一个构造器 Builder builder = PlayerModule.PBPlayer.newBuilder(); //设置数据 builder.setPlayerId(101).setAge(20).addSkills(1011); //构造出对象 PBPlayer player = builder.build(); //序列化成字节数组 return player.toByteArray();
反序列化
PBPlayer pbPlayer = PlayerModule.PBPlayer.parseFrom(byte);