您的位置:首页 > 编程语言 > Java开发

java中使用protobuf

2015-07-14 11:18 591 查看
/article/1659672.html

调研环境:windows

1.http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载

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

http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.protobuf/protobuf-java/2.4.1

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

[java] view
plaincopyprint?

package Feinno.Practice.Learn;

option java_package = "Feinno.Practice.Learn";

option java_outer_classname = "ProtoBufferPractice";

message msgInfo {

required int32 ID = 1;

required int64 GoodID = 2;

required string Url = 3;

required string Guid = 4;

required string Type = 5;

required int32 Order = 6;

}

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



protoc.exe --java_out=./ msg.proto

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

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

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

[java] view
plaincopyprint?

ProtoBufferPractice.msgInfo.Builder builder=ProtoBufferPractice.msgInfo.newBuilder();

builder.setGoodID(100);

builder.setGuid("11111-23222-3333-444");

builder.setOrder(0);

builder.setType("ITEM");

builder.setID(10);

builder.setUrl("http://xxx.jpg");

ProtoBufferPractice.msgInfo info=builder.build();

byte[] result=info.toByteArray() ;

8.反序列化:

[java] view
plaincopyprint?

try{

ProtoBufferPractice.msgInfo msg = ProtoBufferPractice.msgInfo.parseFrom(result);

System.out.println(msg);

}

catch(Exception ex){

System.out.println(ex.getMessage());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: