碰巧用到Proto,算是笔记吧
windows :
1,两个文件:proto.exe, protobuf-java-2.4.1.jar
2,建立一个工程TestPb,在下面建立一个proto文件件,用来存放【。proto】文件
3,将proto,exe放在工程下,
4,建立一个msg.proto文件:
option java_package = "com.protobuftest.protobuf";
option java_outer_classname = "PersonProbuf";
message Person {
required string name = 1;
required int32 id = 2;
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;
message CountryInfo {
required string name = 1;
required string code = 2;
optional int32 number = 3;
}
}
message AddressBook {
repeated Person person = 1;
}
5,生成 java文件:在proto.exe目录下:protoc --java_out=./src ./proto/msg.proto
6,copy个测试示例了
新建一个文件TestPb.java
***********************************************************
package com.protobuftest.protobuf;
import java.util.List;
import com.google.protobuf.InvalidProtocolBufferException;
import com.protobuftest.protobuf.PersonProbuf;
import com.protobuftest.protobuf.PersonProbuf.Person;
import com.protobuftest.protobuf.PersonProbuf.Person.PhoneNumber;
public class TestPb {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonProbuf.Person.Builder builder = PersonProbuf.Person.newBuilder();
builder.setEmail("kkk@email.com");
builder.setId(1);
builder.setName("TestName");
builder.addPhone(PersonProbuf.Person.PhoneNumber.newBuilder().setNumber("131111111").setType(PersonProbuf.Person.PhoneType.MOBILE));
builder.addPhone(PersonProbuf.Person.PhoneNumber.newBuilder().setNumber("011111").setType(PersonProbuf.Person.PhoneType.HOME));
Person person = builder.build();
byte[] buf = person.toByteArray();
try {
Person person2 = PersonProbuf.Person.parseFrom(buf);
System.out.println(person2.getName() + ", " + person2.getEmail());
List<PhoneNumber> lstPhones = person2.getPhoneList();
for (PhoneNumber phoneNumber : lstPhones) {
System.out.println(phoneNumber.getNumber());
}
} catch (InvalidProtocolBufferException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(buf);
}
}
***********************************************
*******************************
生成java文件:PersonProbuf.java
*******************************
工程文件结构:
相关推荐
描述中的“protobuf工程示例,protobuf读写消息示例”意味着这个压缩包包含了一个展示如何在Java项目中使用protobuf进行消息序列化和反序列化的实例。在这个过程中,开发者通常会定义.proto文件,该文件包含了...
赠送jar包:protobuf-java-3.11.4.jar; 赠送原API文档:protobuf-java-3.11.4-javadoc.jar; 赠送源代码:protobuf-java-3.11.4-sources.jar; 赠送Maven依赖信息文件:protobuf-java-3.11.4.pom; 包含翻译后的API...
赠送jar包:protobuf-java-3.16.1.jar; 赠送原API文档:protobuf-java-3.16.1-javadoc.jar; 赠送源代码:protobuf-java-3.16.1-sources.jar; 赠送Maven依赖信息文件:protobuf-java-3.16.1.pom; 包含翻译后的API...
这个ZIP文件包含了在Java环境中使用protobuf所需的所有类库、文档和可能的示例代码。 标签"protobuf java 3.2.0"进一步明确了这是关于protobuf在Java平台上的3.2.0版本,这个标签对于开发者来说是搜索和识别资源的...
protobuf-java完整包(jar+source+javadoc+本地编译器),难得资源,直接导入可用! 使用教程: 1. 编辑build.bat,根据build.bat内设置的路径,把.proto文件放到相应的文件夹内,执行build.bat即可把.proto文件编译...
开发者可以使用protobuf编译器(protoc)将.proto文件转换为Java类,这些类提供了序列化和反序列化的API,使得程序能够轻松地处理和解析protobuf格式的数据。 使用protobuf有以下几个关键步骤: 1. 定义数据结构:...
标题中的“protobuf java 接口 demo”指的是使用Google的Protocol Buffers(简称protobuf)在Java环境中实现接口的示例。Protocol Buffers是一种高效的数据序列化协议,它允许开发者定义数据结构,然后生成能够轻松...
赠送jar包:protobuf-java-3.7.1.jar; 赠送原API文档:protobuf-java-3.7.1-javadoc.jar; 赠送源代码:protobuf-java-3.7.1-sources.jar; 赠送Maven依赖信息文件:protobuf-java-3.7.1.pom; 包含翻译后的API文档...
`Java使用Protocol Buffers入门四步骤 -.htm`和`Java使用Protocol Buffers入门四步骤 -_files`可能是一个教程文档和相关资源,详细介绍了如何在Java环境下逐步开始使用protobuf。 protobuf的优点包括小巧高效、兼容...
在Java环境中,protobuf提供了编译器和API,使得开发者可以方便地在应用程序中使用protobuf定义的数据结构。 描述中的"protobuf-java-3.4.0.zip"进一步确认了这是一个针对Java平台的protobuf库的特定版本,即3.4.0...
Java作为广泛使用的编程语言之一,protobuf提供了对Java的良好支持。本篇文章将详细探讨protobuf在Java中的代码生成过程。 首先,我们需要理解protobuf的基本概念。一个`.proto`文件是protobuf的数据结构定义,它...
在Java和C#中使用protobuf,开发者首先需要编写.proto文件,这是一种定义数据结构的文本文件。.proto文件包含消息类型定义,类似于编程语言中的类。例如: ```protobuf syntax = "proto3"; message Person { ...
赠送jar包:protobuf-java-3.11.4.jar; 赠送原API文档:protobuf-java-3.11.4-javadoc.jar; 赠送源代码:protobuf-java-3.11.4-sources.jar; 赠送Maven依赖信息文件:protobuf-java-3.11.4.pom; 包含翻译后的API...
赠送jar包:protobuf-java-util-shaded-351-0.9.jar; 赠送原API文档:protobuf-java-util-shaded-351-0.9-javadoc.jar; 赠送源代码:protobuf-java-util-shaded-351-0.9-sources.jar; 赠送Maven依赖信息文件:...
3. **引入protobuf库**:将protobuf-java-3.6.1.jar添加到Java项目的类路径中,以便在运行时使用protobuf的API。 4. **序列化和反序列化**:在Java代码中,使用生成的Java类实例化消息对象,填充字段,然后通过...
这个版本的jar文件适用于Java 8及以上版本,确保在Java项目中使用protobuf时的兼容性。 `protoc.exe`是protobuf编译器,它能读取.proto文件,并根据文件中的定义生成对应语言的源代码。对于Java项目,protoc会生成...
包含protobuf-java-3.5.0.jar,protobuf-java-util-3.5.0.jar以及对应的javadoc和sources 还有对应版本所有平台的的protoc。 需要其他版本的请进我CSDN空间查看。包齐全 站内搜出来的都40 50个币 漫天要价。自己折腾...
开发者在Java项目中引入这个jar包,就可以在Java程序中使用protobuf API来编码和解码protobuf消息。 使用步骤: - 定义.proto文件,其中包含protobuf消息类型和字段的定义。 - 使用protoc编译器(即将讨论的工具...
- 在Java项目中,需要添加protobuf-java库作为依赖,以便使用编译器生成的Java类。 - 通过Maven或Gradle,可以很容易地将protobuf-java库引入到构建配置中。 9. **运行时支持**: - 除了编译器生成的代码,...
protobuf Java版本的离线api,自己制作