JAVA操作google protobuf简单示例

编写 一个test.proto文件

option java_package = "com.proto";
option java_outer_classname = "FirstProtobuf";
message TestBuf  {
  required int32 ID = 1;
  required string Url = 2;
}

利用protoc.exe 生成java文件:

protoc.exe --java_out=./ test.proto

写个测试类:

package com.test;

import java.io.IOException;
import com.proto.FirstProtobuf;
import com.proto.FirstProtobuf.TestBuf;

public class TestProtoBuf {

	public static void main(String[] args) throws IOException {
		//序列化过程
		//FirstProtobuf是生成类的名字,即proto文件中的java_outer_classname
		//testBuf是里面某个序列的名字,即proto文件中的message testBuf 

		FirstProtobuf.TestBuf.Builder builder = FirstProtobuf.TestBuf.newBuilder();

		builder.setID( 123 );
		builder.setUrl("http://www.21cn.com");

		TestBuf info = builder.build();
		byte[] buf = info.toByteArray();

		TestBuf tb = TestBuf.parseFrom(buf);
		System.out.println( tb.getID());
		System.out.println( tb.getUrl());
	}
}
时间: 2024-11-09 10:39:40

JAVA操作google protobuf简单示例的相关文章

Node.js操作Redis的简单示例

Redis是一个key-value类型的数据库,而key全部都是字符串,value可以是集合.hash.list等等. Redis是通过MULTI/DISCARD/EXEC/WATCH这4个命令来实现事务功能.对事务,我们必须知道事务安全性是一个非常重要的. 事务提供了一种"将多个命令打包,然后一次性.按顺序执行"的机制,并且在事务执行期间不会中断--意思就是在事务完成之前,客户端的其他命令都是阻塞状态. var redis = require("redis");

文件操作的一个简单示例

在上文介绍了C中文件操作的一些基本函数,下面给一个简单例子,完成从控制台输入一段字符串,然后将其写入文件,然后从文件中读出刚刚写入的内容,代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> const int LENGTH=80; int main(void){ char mystr[LENGTH]; int lstr=0; int mychar=0; FILE * pfile=NULL; c

google protobuf 简单实例

1.定义proto文件: User.proto package netty; option java_package="myprotobuf"; option java_outer_classname="UserProto"; message User{ required int32 ID=1; required string userName=2; required string Password=3; repeated string address=4; } 2

java操作properties文件简单学习

java操作properties文件的工具类简单封装: 注意:由于本地和环境和linux服务的路径有区别,或者jetty,resin,tomcat部署后,文件的路径也是有区别的.比如我们在linux上把项目放在另一个磁盘下,此时,文件的路径就是项目所在的路径,而不是WEB-INF下,所以,这里需要灵活配置! package com.sohu.util; import java.io.BufferedInputStream; import java.io.File; import java.io.

Java操作Redis的简单实例

Java操作Redis是必备学习的内容,那我直接上一个超级简单的案例给大家参考下! 一.创建RedisTest类,代码如下! import redis.clients.jedis.Jedis; public class RedisTest {     public static void main(String[] args) {         // TODO Auto-generated method stub         //连接redis服务         Jedis jedis 

google protobuf 使用示例

1 定义.proto接口文件 package tutorial; message Person { required string name = 1; required int32 id = 2; //unique ID number for this person optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string

java导入导出excel常用操作小结及简单示例

POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFSheet sheet = wb.createSheet();    //添加一个sheet,对应Excel文件中的sheet 构造方法可以有参也可以无参wb.createSheet("学生表一") HSSFRow row = sheet.createRow((int) 0);  //she

使用java如何操作elasticsearch?简单示例。

在线API:https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.4/transport-client.html教程:http://blog.java1234.com/blog/articles/345.html注意:不同版本的ES API差别较大,引入jar包版本一定要和生产保持一致.工具类及使用方法可以参考备件系统项目:源码见GitHub工具类及使用方法可以参考备件系统项目:源码见GitHub 引入jar包: <dep

java操作xml超简单的方法

用dom4j?SAX?no,no,no,光看api和帮助文档就烦,有没有更简单的方法呢?答案是有的. 那就是默默无名的:JAXB jaxb是啥? 摘抄一段度娘百科的介绍: JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类.JAXB允许JAVA人员将JAVA类映射为XML表示方式,常用的注解包括:@XmlRootElement,@X