分享

Java protobuf框架使用向导

 WindySky 2017-08-13

 调研环境:windows


1.http://code.google.com/p/protobuf/downloads/list ,https://github.com/google/protobuf/releases?after=v3.0.0-alpha-1 选择其中的win版本下载


2.下载一个protobuf-Java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同,否则可能出现编译通不过现象)


3.在proto.exe同级目录,编写一个msg.proto文件:

[plain] view plain copy
  1. package Feinno.Practice.Learn;    
  2.     
  3. option java_package = "Feinno.Practice.Learn";    
  4. option java_outer_classname = "ProtoBufferPractice";    
  5.     
  6. message msgInfo  {    
  7.   required int32 ID = 1;    
  8.   required int64 GoodID = 2;           
  9.   required string Url = 3;    
  10.   required string Guid = 4;    
  11.   required string Type = 5;    
  12.   required int32 Order = 6;    
  13. }    


4.使用如下命令编译这个文件:

protoc.exe --java_out./ msg.proto


5.将生成的ProtoBufferPractice.java文件引入eclipse


6.把下载的protobuf-java-2.4.1.jar也引入工程


7.使用方法(序列化):

  1. ProtoBufferPractice.msgInfo.Builder builder=ProtoBufferPractice.msgInfo.newBuilder();    
  2.     builder.setGoodID(100);    
  3.     builder.setGuid("11111-23222-3333-444");    
  4.     builder.setOrder(0);    
  5.     builder.setType("ITEM");    
  6.     builder.setID(10);    
  7.     builder.setUrl("http://g");    
  8.     ProtoBufferPractice.msgInfo info=builder.build();    
  9.     
  10.     byte[] result=info.toByteArray() ;    


8.反序列化:

  1. try{    
  2.         ProtoBufferPractice.msgInfo msg = ProtoBufferPractice.msgInfo.parseFrom(result);    
  3.         System.out.println(msg);    
  4.     }    
  5.     catch(Exception ex){    
  6.         System.out.println(ex.getMessage());    
  7.     }   


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多