美文网首页
protobuf菜鸟教程

protobuf菜鸟教程

作者: 大漠硝烟 | 来源:发表于2021-07-27 18:14 被阅读0次

一:环境安装

1 安装brew

ruby -e "$(curl -fsSL  https://raw.githubusercontent.com/Homebrew/install/master/install)"

2 使用brew安装protobuf

brew install protobuf

3 查看protoc版本

protoc --version

4 查看protobuf版本

brew search protobuf

二:示例

gps_data.proto

syntax = "proto3";

option java_package = "com.dongwt.proto";

message gps_data {

int64 id = 1;

string terminalId = 2;

string dataTime = 3;

double lon = 4;

double lat = 5;

float speed = 6;

int32 altitude = 7;

int32 locType = 8;

int32 gpsStatus = 9;

float direction = 10;

int32 satellite = 11;

}

执行命令

protoc -I=src/main/resources/proto --java_out=src/main/java gps_data.proto

三:pom依赖(版本号序号protoc版本保持一致)

<dependency>

    <groupId>com.google.protobuf</groupId>

    <artifactId>protobuf-java</artifactId>

    <version>3.17.3</version>

</dependency>

四:单侧

public class TestGpsProtobuf {

public static void main(String[] args) {

System.out.println("===== 构建一个GPS模型开始 =====");

        GpsData.gps_data.Builder gps_builder = GpsData.gps_data.newBuilder();

        gps_builder.setAltitude(1);

        gps_builder.setDataTime("2017-12-17 16:21:44");

        gps_builder.setGpsStatus(1);

        gps_builder.setLat(39.123);

        gps_builder.setLon(120.112);

        gps_builder.setDirection(30.2F);

        gps_builder.setId(100L);

        GpsData.gps_data gps_data = gps_builder.build();

        System.out.println(gps_data.toString());

        System.out.println("===== 构建GPS模型结束 =====");

        System.out.println("===== gps Byte 开始=====");

        for(byte b : gps_data.toByteArray()){

System.out.print(b);

        }

System.out.println("\n" +"bytes长度" + gps_data.toByteString().size());

        System.out.println("===== gps Byte 结束 =====");

        System.out.println("===== 使用gps 反序列化生成对象开始 =====");

        GpsData.gps_data gd =null;

        try {

gd = GpsData.gps_data.parseFrom(gps_data.toByteArray());

        }catch (InvalidProtocolBufferException e) {

e.printStackTrace();

        }

System.out.print(gd.toString());

        System.out.println("===== 使用gps 反序列化生成对象结束 =====");

    }

}

相关文章

网友评论

      本文标题:protobuf菜鸟教程

      本文链接:https://www.haomeiwen.com/subject/plaeettx.html