protobuf菜鸟教程

Python016

protobuf菜鸟教程,第1张

一:环境安装

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 反序列化生成对象结束 =====")

    }

}

操作不正确。

没有满足它运行的条件。把括号去掉。

菜鸟教程提供了编程的基础技术教程,介绍了HTML,CSS,Javascript,Python,Java,Ruby,C,PHP,,MySQL等各种编程语言的基础知识。

网站推荐:

1、 CSDN

CSDN (Chinese Software Developer Network) 创立于1999年,是中国的IT社区和服务平台,为中国的软件开发者和IT从业者提供知识传播、职业发展、软件开发等全生命周期服务。

满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

2、开源中国

开源中国 是目前中国最大的开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

3、博客园

博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。

4、segmentfault

SegmentFault是中国领先的开发者技术社区。 我们希望为编程爱好者提供一个纯粹、高质的技术交流的平台, 与开发者一起学习、交流与成长,创造属于开发者的时代。

5、ITEYE

ITeye Java编程 Spring框架 Ajax技术 agile敏捷软件开发 ruby on rails实践 - ITeye做最棒的软件开发交流社区。

6、菜鸟教程

菜鸟教程提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。

7、IT猿网

IT猿网提供专业的技术视频教程、技术文档、开发工具。这里您能轻松学习Java,HTML、CSS、Javascript,PHP , MySQL等编程知识。