protoBuffer学习文档
上一篇 /
下一篇 2012-11-25 14:23:30
/ 个人分类:开发
1.protobuffer介绍
protobuffer是google提供的一个
敏捷、高效的序列化框架,它比xml更小巧简单。开发人员只要定义好自己的数据结构,通过proto编译器生成相关的类,就可以很轻松的调用对应的一些方法完成对消息的序列化和发序列化操作。开发人员还可以随意在数据结构中添加字段,而无需改动调用原有字段的方法!
2.protobuffer使用方法
(1)从http://code.google.com/p/protobuf/downloads/list下载所需的protobuffer源码,以及对应的编译器文件
(2)在eclipse中新建一个
java工程,并导入protobuffer的jar包
(3)在项目下建立存放proto文件的文件夹proto
(4)编写后缀为.proto的文件
(5)用protoc编译.proto文件,命令行如下:
protoc.exe --java_out=D:\workspace\test\proto .\person.proto
注意:java_out是.proto文件编译后生成的类的路径,.\person.proto是原始的.proto文件的路径!proto编译器要求输入路径只能是.\filename.proto的形式,其余的路径均无法识别!
(6)此时在D:\workspace\test\proto路径下就可以看到生成的Person.java类了,接下来我们可以调用类中的方法写入消息和读取消息了!
附上一段简单的代码:
package main;
import comm.Person.person;
import comm.Person.person.PhoneType;
public class test{
public static void main(String[] args){
person.Builder personBuilder = person.newBuilder();
personBuilder.setId(1);
personBuilder.setName("Erin");
personBuilder.setEmail("bethany726@gmail.com");
person.PhoneNumber.Builder phoneBuilder1 = person.PhoneNumber.newBuilder();
phoneBuilder1.setNumber("18600686031");
phoneBuilder1.setType(PhoneType.MOBILE);
personBuilder.addPhone(phoneBuilder1);
person.PhoneNumber.Builder phoneBuilder2 = person.PhoneNumber.newBuilder();
phoneBuilder2.setNumber("89221532");
phoneBuilder2.setType(PhoneType.HOME);
personBuilder.addPhone(phoneBuilder2);
System.out.println(personBuilder.getId());
System.out.println(personBuilder.getName());
System.out.println(personBuilder.getPhoneCount());
System.out.println(personBuilder.getPhone(0));
System.out.println(personBuilder.getPhone(1));
}
}
本篇只记录了如何安装protoBuffer,如何使用protoc编译proto文件,并附上一段简单的写入和读取消息的代码,关于protoBuffer刚刚开始
学习,后续会继续更新相关的学习文档!
收藏
举报
TAG: