当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

protocal buffers入门实例

发表于: 2014-09-22   作者:blackproof   来源:转载   浏览次数:
摘要: hadoop yarn中新的系列化protocol buffers 1.安装protoc,附件里是win,llinux的文件,win配置下环境变量,或是linux下configure make make install 2.写protoc文件person.proto package tutorial; option java_package="";//包名 optio

hadoop yarn中新的系列化protocol buffers

1.安装protoc,附件里是win,llinux的文件,win配置下环境变量,或是linux下configure make make install

2.写protoc文件person.proto

package tutorial;
option java_package="";//包名
option java_outer_classname="PersonProtos";//类名

message Person{
	required string name = 1;  //required为必填,optional为可为空
	required int32 id =2;   
	required string email = 3;
	
	message PhoneNumber{
		required string number = 1;
		optional int32 type = 2;
	}
	
	repeated PhoneNumber phone = 4;
}

2.protoc命令生成类到当前目录

protoc -java_out=. person.proto

 3.测试类

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import com.zb.demo.protocalBuffers.PersonProtos.Person;

/**
 * proto buffer实例
 * @author dirk.zhang
 *
 */
public class ProtocalBufferExample {
	
	public static void main(String[] args) {
		Person person1 = Person.newBuilder()
				.setName("dirk.zhang")
				.setEmail("kongzhiguiji@aliyun.com")
				.setId(41)
				.addPhone(Person.PhoneNumber.newBuilder().setNumber("13522616858")
						.setType(0))
						.addPhone(Person.PhoneNumber.newBuilder().setNumber("110").setType(1)).build();
		
		
		try {
			FileOutputStream output = new FileOutputStream(new File("d:\\delete\\protobufExample.txt"));
			person1.writeTo(output);
			output.close();
		} catch (Exception e) {
			System.out.println("write Error!");
		}
		try {
			FileInputStream input = new FileInputStream(new File("d:\\delete\\protobufExample.txt"));
			Person person2 = Person.parseFrom(input);
			System.out.println("person2:"+person2);
		} catch (Exception e) {
			System.out.println("read Error");
		}
						
	}

}

 

 

protocal buffers入门实例

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Google Protocol Buffers 入门 个人小站,正在持续整理中,欢迎访问:http://shitouer.cn 小站博文地址
Protocol Buffers是Google开源的序列化库,具有平台无关,高性能,兼容性好等有点。它是一种轻便高
今天了解了一下protocal buffer,觉得这个协议还是比较有实用价值的。不同语言(当前只支持java,py
ObjC(Objective-C)中的"非正式协议(interface)"与"正式协议(protocal)" 非正式协议在obj-c中的关键
非正式协议在obj-c中的关键字虽然也是interface,但是这个跟c#中的接口(interface)并不完全相同。 回
数据交换的方式很多比如:XML,JSON,Protobuf。虽然protobuf很流行,并且系出名门,可是没怎么用过。
在Ruby和Rails开发者中,面向服务(Service-Oriented)架构有一个当之无愧的名声,它是一个缓解程序规
Google Protocol Buffers 编码(Encoding) 1. 概述 前三篇文章《Google Protocol Buffers 概述》《Go
原创不易,转载请注明出处:SpringMVC入门教程及其原理讲解和实例代码下载 代码下载地址:http://ww
ios开发入门级实例 转自:http://www.guomii.com/posts/20860 关于如何创建第一个 iOS 应用 本篇“
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号