java中Protobuf的使用实例

 最近公司项目中有埋点的需求,采用的是protocolbuffer的数据格式,所以去研究了protobuf的使用,在此记录一下

1.什么是protocolbuffer?

protocol buffer是google的一个开源项目,它是用于结构化数据串行化的灵活、高效、自动的方法,例如XML,不过它比xml更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。

2.使用

2.1下载protoc-2.4.1-win32.zip,http://download.csdn.net/detail/tiandiwuya/9792888

2.2下载 一个protobuf-Java-2.4.1.jar文件,http://download.csdn.net/detail/tiandiwuya/9792889

2.3.用记事本编写一个.proto文件:

如:我编写的是msg.proto

package protobuf;
option java_package = "com.sq.protobuf";
option java_outer_classname = "FirstProtobuf";
message testBuf  {
  required int32 ID = 1;
  required string Url = 2;
}
将其放在与刚解压的protoc.exe同级目录中。
2.4使用如下命令编译这个文件:

protoc.exe --java_out./ msg.proto


2.5将生成的FirstProtobuf.java文件引入eclipse,把下载的protobuf-java-2.4.1.jar也引入工程

2.6建立测试文件

public class test2 {

	public static void main(String[] args) {
		//序列化
		FirstProtobuf.testBuf.Builder builder = FirstProtobuf.testBuf.newBuilder();
		builder.setID(117);
		builder.setUrl("bangde");

		// testBuf
		FirstProtobuf.testBuf info = builder.build();

		byte[] result = info.toByteArray();
		
		System.out.println("反序列化过程:"+result.toString());
		
		

		//反序列化过程
		try {
		FirstProtobuf.testBuf testBuf = FirstProtobuf.testBuf.parseFrom(result);
		System.out.println("反序列化过程:"+"\n"+testBuf);
		} catch (InvalidProtocolBufferException e) {
		e.printStackTrace();
		}
	}
}
结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值