java use protobuffer
来源:互联网 发布:燃气灶烤箱一体机 知乎 编辑:程序博客网 时间:2024/06/05 23:41
一、创建proto文件
package cn.proto;option java_package="cn.proto";option java_outer_classname = "Test";option optimize_for = SPEED;message TestUser{ optional int64 id = 1; optional string name=2;}
二、自动生成Test文件,使用maven编译生成
三、测试写入和读出
package cn.useproto;import cn.proto.Test;import java.io.*;/** * Created by sz0816 on 14-5-1. */public class TestProto { public static void main(String []args) throws IOException { TestProto testProto = new TestProto(); testProto.testWrite(); testProto.testRead(); } public void testWrite() throws IOException { Test.TestUser.Builder testBuilder = Test.TestUser.newBuilder(); testBuilder.setId(12); testBuilder.setName("yezi"); Test.TestUser testUser = testBuilder.build(); File file = new File("C:\\Users\\sz0816\\Desktop\\test.dat"); FileOutputStream fileOutputStream = new FileOutputStream(file); fileOutputStream.write(testUser.toByteArray()); fileOutputStream.flush(); fileOutputStream.close(); } public void testRead()throws IOException{ File file = new File("C:\\Users\\sz0816\\Desktop\\test.dat"); Test.TestUser testUser = Test.TestUser.parseFrom(new FileInputStream(file)); System.out.println(testUser.getId() + "-->" + testUser.getName()); }}
四、部分解释
1、如果想使用对象数据
message TestUser{ optional int64 id = 1; optional string name=2; optional TestTeacher testTeacher=3;}
message TestTeacher{ optional int32 id=1; optional string name=2; optional TestUser testUser=3;}
2、如果使用List对象
message TestUser{ optional int64 id = 1; optional string name=2; optional TestTeacher testTeacher=3;}message TestTeacher{ optional int32 id=1; optional string name=2; repeated TestUser testUser=3; //相当list}
3、字段解析
equired:一个格式良好的消息一定要含有1个这种字段。表示该值是必须要设置的;
optional:消息格式中该字段可以有0个或1个值(不超过1个)。
repeated:在一个格式良好的消息中,这种字段可以重复任意多次(包括0次)。重复的值的顺序会被保留。表示该值可以重复,相当于java中的List。
0 0
- java use protobuffer
- maven use protobuffer
- protobuffer java
- java---protobuffer
- Caffe-----ProtoBuffer ,How to use protobuffer in Ubuntu
- protobuffer
- Protobuffer和json 简单对比(java语言)
- Protobuffer和json 简单对比(java语言)
- protobuffer:Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax
- php protobuffer
- erlang protobuffer
- google protobuffer
- protobuffer 编译
- use java connect domino
- Use annotation in Java
- ProtoBuffer 简单例子
- go的protobuffer安装
- lua protobuffer的实现
- 每日一个C++小程序(六)--基本菜单程序
- Red Hat 7壁纸分享
- hdu A Mathematical Curiosity
- 顶级程序员的10条最佳实践
- 每日一个C++小程序(七)--计算两点距离(友元函数)
- java use protobuffer
- java swing 之绝对布局
- Lua进阶(二)——函数环境、包
- 每日一个C++小程序(八)--设计一个人事管理的人员类
- Polygon Rasterization之Scanline Polygon Rasterization Algorithm
- 安装glassfish
- C# WinForm控件之Dock顺序调整
- 每日一个C++小程序(九)--取不同球的取法
- set命令笔记