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());
}
调研环境: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());
}
相关文章推荐
- SpringMVC实战(三种控制器方式)
- Failed to load JavaHL Library解决方法
- Java中Runnable和Thread的区别
- JavaCodeTra 猴子选猴王 约瑟夫循环
- java之字符串的排序
- java构造函数加载
- 安装nutch--JAVA_HOME环境变量的配置
- idea14怎么导出java文档
- Spring MVC 解读——@Autowired
- (LeetCode)用两个栈实现一个队列
- 【java】论integer是地址传递还是值传递
- spring 学习资料
- [LeetCode][Java] Jump Game II
- java之类加载器
- eclipse安装svn插件
- java学习路线分享,让你少走弯路
- spring框架下单元测试
- spring工作原理
- 借助百度api通过经纬度查询位置信息
- Flex与Java三种交互方式实例