protobuf 序列化 使用

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);

猜你喜欢

转载自www.cnblogs.com/mxz1994/p/9509980.html