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

protobuf在Java中的简单使用

2014-07-02 14:12 429 查看
Protobuf在Java中的简单使用

1. 在Java中使用protobuf需要jar包,下载protobuf-Java-2.5.0.jar包文件,添加到项目中。另外需要protoc.exe来编译proto文件。jar包及测试代码地址:
http://download.csdn.net/detail/yaoyuanyylyy/7581985

2. 新建一个msg.proto文件:

package com.test.learn;
option java_package = "com.test.learn";
option java_outer_classname = "ProtoBufTest";

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;
}

3. 将msg.proto文件盒protoc.exe拷贝到同一目录下,然后使用下面的命令将msg.proto文件编译成Java类文件,可在当前目录下看到生成的ProtoBufTest.java文件:

protoc --java_out=./ msg.proto


4. 在项目中导入上一步生成的ProtoBufTest.java文件,并将protobuf-Java-2.5.0.jar库添加到项目中,编写测试文件进行测试:



5. 测试代码:

package com.test;

import com.google.protobuf.InvalidProtocolBufferException;
import com.test.learn.ProtoBufTest;

public class MainFile {
public static void main(String[] args) {
ProtoBufTest.msgInfo.Builder builder = ProtoBufTest.msgInfo.newBuilder();
builder.setGoodID(100);
builder.setGuid("11111-22222-33333-44444");
builder.setOrder(0);
builder.setType("item");
builder.setID(10);
builder.setUrl("http://www.baidu.com");
ProtoBufTest.msgInfo msgInfo = builder.build();
byte[] result = msgInfo.toByteArray();

try {
ProtoBufTest.msgInfo msg = ProtoBufTest.msgInfo.parseFrom(result);
System.out.println(msg);
} catch(InvalidProtocolBufferException e) {
System.out.println(e.getMessage());
}

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