zoukankan      html  css  js  c++  java
  • protobuf的安装和使用

    以下全部基于win7系统。

    protobuf是什么,有什么用网上说的已经很多了。这里就是说一下怎么使用。就当给自己做个笔记吧。

    .proto文件的语法什么的也请网上查看,挺多的。

    第一步: 下载protoc.exe 和 protobuf-java-2.4.1.jar。这里要注意版本区别(网上不少人说要下载protoc-2.4.1-win32.zip,但是没有找到)。其实protobuf就不用安装,只是使用protoc.exe生成一下java文件罢了。

    下载路径 http://pan.baidu.com/s/1sj0VX1r

    也可以下载最新版:https://developers.google.com/protocol-buffers/docs/downloads

    第二步:下载好后任意放到一个文件夹,这里我放到了E:/protobuf下。然后新建一个person.proto文件:

    option java_package = "com.zh.test";  
    option java_outer_classname = "Persons";
    message PersonInfo  {  
      required int32 id = 1;
      required string name = 2;
    } 

    第三步:生成java文件。在cmd中执行命令E:protobuf>protoc.exe --java_out=./ person.proto。注意:./后面有一个空格

        然后就能看到在当前文件夹下生成一个com文件夹,这就是上面生成的.java文件的包了。逐级打开包就能看到Persons.java文件了。

    第四步:把生成的Persons.java文件拷贝的项目中,然后就可以测试了,看如下代码

    public class TestProtobuf {
        public static void main(String[] args) {
            Persons.PersonInfo.Builder builder=Persons.PersonInfo.newBuilder();  
            builder.setId(1);
            builder.setName("zhang");
            Persons.PersonInfo info=builder.build();  
            byte[] result=info.toByteArray();
            System.out.println("==========="+result);
            
            try {
                Persons.PersonInfo msg = Persons.PersonInfo.parseFrom(result);
                System.out.println(msg.getId());
                System.out.println(msg.getName());
            } catch (InvalidProtocolBufferException e) {
                e.printStackTrace();
            }
        }
    
    }

    OK,到这里就完成了序列化。

  • 相关阅读:
    Jetty开发指导:WebSocket介绍
    Python处理JSON
    聚焦数据可视化之中的一个--沃尔马怎样利用数据可视化依据实时社交数据调整採购和仓储计划?
    刚刚在寻找微博
    2010级信管毕业生实习总结汇编版(共29份)
    推荐杀毒软件
    Windows Server 2008 R2 下载地址
    在myeclipse中使用log4j记录日志
    获取Tomcat更详细的日志
    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
  • 原文地址:https://www.cnblogs.com/qlong8807/p/4403021.html
Copyright © 2011-2022 走看看