Google ProtocolBuffer(PB) 简介和实例

简介实例步骤一, 书写 .proto 文件,这里直接上google官方实例,并存储为addressbook.protopackage tutorial;option java_package = “com.example.tutorial”;option java_outer_classname = “AddressBookProtos”;message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType {MOBILE = 0;HOME = 1;WORK = 2; } message PhoneNumber {required string number = 1;optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4;}message AddressBook { repeated Person person = 1;}步骤二,编译 .proto 文件,用到PB配套的编译工具protoc,并生成java类protoc cpp_out/addressbook.protoprotoc -I=. –java_out=. addressbook.proto步骤三,应用生成的类,并做序列化和反序列化操作,依赖库protobuf-java-2.6.1.jar(且版本必须和上一步的protoc的版本一致)//生成对象Person john =Person.newBuilder().setId(1234).setName(“John Doe”).setEmail(“jdoe@example.com”).addPhone(Person.PhoneNumber.newBuilder().setNumber(“555-4321”).setType(Person.PhoneType.HOME)).build();System.out.println(john.toString());//序列化为二进制数组byte[] johnbyte = john.toByteArray();//反序列化(中间过程你可以认为是经过了网络传输,,文件存储等)//注意对比两个System.out的输出try {Person john2 = Person.parseFrom(johnbyte);System.out.println(john2.toString());} catch (InvalidProtocolBufferException e) {// TODO Auto-generated catch blocke.printStackTrace();}扩展下载下列地址提供了上述实例工程的完整下载,资源包含: protobuf-2.6.1.zip源码; protoc-2.6.1-win32; protobuf-java-2.6.1.jar; 一个序列化反序列化实例下载传送门参考

最好的感觉就是你什么都跟我说。

Google ProtocolBuffer(PB) 简介和实例

相关文章:

你感兴趣的文章:

标签云: