`

Protobuf 简介

    博客分类:
  • Java
 
阅读更多

1. 下载编译文件:protoc-2.6.0-win32.zip

https://sourceforge.net/projects/protobuf/?source=typ_redirect

 

 

2. 导入开发包

<dependency>

<groupId>com.google.protobuf</groupId>

<artifactId>protobuf-java</artifactId>

<version>2.6.1</version>

</dependency>

 

 

3. 编写Message文件

addressbook.proto

// See README.txt for information and build instructions.

package tutorial;

option java_package = "org.hdp.practice.serial";
option java_outer_classname = "AddressBookProtos";

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 number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

// Our address book file is just one of these.
message AddressBook {
  repeated Person person = 1;
}

 

 

 

4. 编译Message文件

protoc --java_out=. addressbook.proto

生成:AddressBookProtos.java文件,将此文件复制到包路径org.hdp.practice.serial下

 

 

5.编写序列化和反序列化代码测试代码

public class SerializationByProtobuf {
	public static void main(String[] args) throws Exception{
		writeProtobuf();
		//readProtobuf();
	}
	
	static void readProtobuf() throws Exception{
		Person person = Person.parseDelimitedFrom(new FileInputStream("D:/tmp/address.data"));
		System.out.println(person.getEmail());
	}
	
	static void writeProtobuf() throws Exception{
		Person person = Person.newBuilder()
				.setId(1)
				.setName("tom")
				.setEmail("dsfs@qq.com")
				.addPhone(Person.PhoneNumber.newBuilder()
						.setNumber("12321324234")
						.setType(Person.PhoneType.HOME).build())
				.build();
		person.writeDelimitedTo(new FileOutputStream("D:/tmp/address.data"));	
	}

}

 

 

 

 

 

 

分享到:
评论

相关推荐

    Protobuf简介及其在C++中的使用

    ### Protobuf简介及其在C++中的使用 #### 1. 简介和安装 ##### 1.1 简介 **1.1.1 什么是 Protobuf** Protobuf,全称为Protocol Buffers,是Google开发的一种高效、灵活且自动化程度高的数据交换格式。它不仅独立...

    protobuf中文学习文档

    **一、protobuf简介** Protocol Buffers(简称protobuf)是Google开发的一种数据序列化协议,用于高效地存储和传输结构化数据。它通过定义消息格式,将数据结构转换为二进制流,相比XML或JSON等文本格式,protobuf...

    unity3d&Protobuf&Socket

    1. **Protobuf简介**: - Protobuf是一种轻量级的数据序列化协议,它可以将复杂的数据结构转换为二进制流,以便在网络间高效地传输。相比JSON或XML,Protobuf的数据量更小,解析速度更快。 - Protobuf有语言无关的...

    ubuntu-ubuntu安装protobuf.pdf

    #### 一、Protobuf简介与重要性 Google的Protocol Buffers(简称Protobuf)是一种高效、灵活的数据序列化框架,它可以被用于多种编程语言和平台之间进行数据交换。Protobuf的核心优势在于其轻量级、高性能的特点,...

    protobuf基本操作1

    protobuf 简介 protobuf 是一种语言无关、平台无关、可扩展的数据交换格式。它可以将结构化数据序列化为一个字节流,以便在不同的语言和平台之间进行数据交换。protobuf 广泛应用于 Google 的各种产品和服务中,如 ...

    Protobuf 3.1 编译器(windows环境下)

    **protobuf简介** Protocol Buffers(简称Protobuf)是Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。相比XML、JSON等数据格式,Protobuf更小、更快、更简单。...

    Protobuf2.6 SourceCode

    **protobuf简介** Protocol Buffers(简称Protobuf)是由Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。Protobuf提供的是一种比XML更小、更快、更简单的方式来...

    Protobuf工具 Google官方协议转换工具

    **protobuf简介** Protocol Buffers(简称Protobuf)是由Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。Protobuf提供的是一种高效、跨平台且语言无关的数据编码...

    protobuf demo

    **protobuf简介** Google Protobuf(Protocol Buffers)是一种高效、灵活的数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。它比XML、JSON等格式更小、更快、更简单。protobuf提供了...

    Fundamentals.ProtoBuf.4.0.01

    **protobuf简介** Protocol Buffers(简称protobuf)是Google公司推出的一种高效、灵活的数据序列化机制,它允许开发者定义数据结构的格式,然后将这些结构化的数据转换为二进制流进行存储或网络传输。与XML、JSON...

    google protobuf C教程

    **protobuf简介** Google Protobuf(Protocol Buffers)是一种高效、灵活的数据序列化机制,由Google开发,用于结构化数据的序列化。它类似于XML、JSON等数据格式,但更小、更快、更简单。Protobuf提供了语言中立、...

    protobuf-3.14.x.zip

    1. **protobuf简介**:protobuf是Google开发的一种轻量级的数据交换语言,它描述了数据结构,并能将这些结构转换为二进制格式,以便在网络之间高效传输或在磁盘上持久存储。protobuf的主要优点包括高效的编码方式,...

    protobuf工具集合

    **protobuf简介** protobuf是一种高效的、跨平台的数据序列化协议,可以将结构化的数据转换为二进制流,便于网络传输和存储。相比XML或JSON等文本格式,protobuf在数据体积和解析速度上具有显著优势。它支持多种编程...

    protobuf js

    **protobuf简介** protobuf是一种跨语言的数据交换格式,可以将复杂的数据结构转换为高效、紧凑的二进制表示。它的设计目标是提供一种简单、快速、可扩展的方式来序列化结构化数据,类似于XML,但更小、更快、更简单...

    google protobuf-中英文使用手册

    **protobuf简介** Protocol Buffers(简称protobuf)是Google开发的一种数据序列化协议,它提供了一种灵活、高效、自动化的结构化数据序列化方法,类似于XML、JSON等格式,但更小、更快、更简单。protobuf可以用于...

    Protobuf使用小案例

    **protobuf简介** Protocol Buffers(简称Protobuf)是由Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。与XML、JSON等格式相比,Protobuf在数据体积和解析速度上...

    Google Protobuf 编译 成 java 文件

    **Google Protobuf简介** Google Protocol Buffers(简称Protobuf)是一种高效、跨平台的数据序列化协议,用于结构化数据的序列化。它提供了一种语言无关的、平台无关的、可扩展的方式,来序列化结构化的数据。...

    Protobuf-2.5.0.tar.gz

    **protobuf简介** Protocol Buffers(简称Protobuf)是由Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。Protobuf提供的是一种比XML更小、更快、更简单的方式来...

    Protobuf使用

    **protobuf简介** Protocol Buffers(简称Protobuf)是Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。相比XML、JSON等数据格式,Protobuf更小、更快、更简单。它...

Global site tag (gtag.js) - Google Analytics