protobuf基于java入门

ByteWaltzX
• 阅读 3722

protobuf基于java入门


1. 编写protobuf文件——person.proto

package protobuf;
option java_package="com.sean.person";
option java_outer_classname = "PersonEntity";
message Person{
    required int32 id = 1;
    required string name = 2;
    optional string email=3;
    repeated string friends = 4;
}

2.将protobuf文件转换为java代码

  1. 下载protoc.exe该工具

  2. 将person.proto加入到protoc.exe所在目录

  3. 命令行进入protoc.exe所在目录

  4. 执行protoc ./person.proto --java_out=./

3.序列化

4.反序列化

public class Test {
    public static void main(String[] args) throws IOException {
        //实例化builder
        PersonEntity.Person.Builder personBuilder = PersonEntity.Person.newBuilder();
        //添加数据
        personBuilder.setId(1).setName("Sean").setEmail("123@qq.com").addFriends("小明").addFriends("小黄");
        //建立实体数据
        PersonEntity.Person msg = personBuilder.build();
        //将数据写入流中
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        msg.writeTo(output);

        byte[] bytes = output.toByteArray();
        System.out.println("person size: "+bytes.length);

        //读取流
        ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
        PersonEntity.Person person = PersonEntity.Person.parseFrom(bis);
        System.out.println("person ID: " + person.getId());
        System.out.println("person name: " + person.getName());
        System.out.println("person email: " + person.getEmail());
        System.out.println("person friends: "+person.getFriendsList());
    }
}
点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
peter peter
4年前
Go-GRPC 初体验
grpc跟常见的clientserver模型相似(dubbo)grpc编码之前需要准备以下环境:安装protobuf,grpc的client与server之间消息传递使用的protoc格式消息,比起json,xml速度快安装grpc的源码包下面开始编写grpc示例代码:1.首先编写proto文件,示例:helloworld
Stella981 Stella981
3年前
Google Protocol Buffer缺陷
之所以要列出protobuf的缺陷,就是为了在使用Protobuf的时候可以规避这些缺陷;没有一个工具是十全十美的,我们在使用工具的时候需要扬长避短,因此要对其优点和缺点都有所了解才可以设计出更好的软件系统!!!
Wesley13 Wesley13
3年前
Java入门0
总览!(https://oscimg.oschina.net/oscnet/up86206a0ad4e65e329fb8213f305b6d491c0.png)准备工作Dos命令!(https://oscimg.oschina.net/oscnet/upc54419e18804ac213c44d9f46
Stella981 Stella981
3年前
Google Protobuf Java API详解
参考之前的教程:https://my.oschina.net/pierrecai/blog/873359即可顺利构建出使用Protobuf进行序列化/反序列化所需的java类。本文将更详细地讲解GoogleProtobuf提供的JavaAPI,即我们可以通过生成的java类做什么。1、Maven依赖想要正常地使用生成的J
Stella981 Stella981
3年前
Linux 内网编译 hadoop
1.环境CentOSrelease6.5(Final)x86\_64javaversion"1.7.0\_79" hadoop2.5.0src.tar.gzapachemaven3.3.9protobuf2.5.02.配置yumyum代理配置:/etc/y
Stella981 Stella981
3年前
ProtoBuf 的java使用
ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。参考http://blog.csdn.net/luyee2010/article/details/82
Wesley13 Wesley13
3年前
(转)protobuf
转自: https://blog.csdn.net/u014534808/article/details/80203018安装之旅_1\.下载protobufprotobuf下载页面在此页面选择合适的版本,我选择的是最新的3.5.0,需要注意的mac下是不要下载protoc3.5.1xxx的包,因为这些包缺少相关命令,会导致后面安装
Stella981 Stella981
3年前
ProtoBuf试用与JSON的比较
介绍ProtoBuf是google团队开发的用于高效存储和读取结构化数据的工具。什么是结构化数据呢,正如字面上表达的,就是带有一定结构的数据。比如电话簿上有很多记录数据,每条记录包含姓名、ID、邮件、电话等,这种结构重复出现。同类XML、JSON也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将
Stella981 Stella981
3年前
Protobuf 语法指南
一、定义一个消息类型    1.1指定字段类型    1.2分配标识号    1.3指定字段规则    1.4添加更多消息类型    1.6从.proto文件生成了什么?    1.7标量数值类型    1.8Optional的字段和默认值    1.9枚举二、使用其他消息类型
liam liam
1年前
探索 RPC 与 Protobuf 的强大功能
一、Protobuf数据格式简析Protobuf是什么?在数据密集型应用领域,Google开发的Protobuf作为一种高效数据编码方式而广受欢迎。它胜任于及XML对比,不仅在体积和速度上表现出色,而且其结构化方式优化了网络传输中的性能。简而言之,Prot