Windows: proto生成java文件
前言protobuf的编译,官方文档建议使用maven,因此如果没有maven先安装maven. 安装安装mavenhttp://maven.apache.org/download.cgi 下载最新maven 安装protobuf在GitHub上下载 https://github.com/google/protobuf/releases,windows下需要下载java和win32.这里下载的3.5.0版本. mvn package
编译成功得到如下信息 如果采用maven项目的话可以不编译jar包,而加入如下信息 <dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.5.0</version>
</dependency>
Java使用protobuf定义数据结构定义protobuf的数据结构,这里要写一个.proto文件。这个文件有点类似于定义一个类。具体参照protobuf官方文档. protoc.exe生成java文件若要生成java文件,需要在proto文件开头加入 syntax = "proto2";
命令行运行: protoc.exe --java_out=E:java Immortaldb.proto
输出文件夹是E:java,输入是Immortaldb.proto 序列化与反序列化以Player为例 //Player序列化
public byte[] serializePlayer() throws IOException{
byte[] byteArray = null;
Immortaldb.Player.Builder playerBuilder= Immortaldb.Player.newBuilder();
//这里应该有Player各项的赋值
playerBuilder.setRoleid(12345);
……
Immortaldb.Player player = playerBuilder.build();
// 将数据写到输出流,如网络输出流,这里用ByteArrayOutputStream来模拟
ByteArrayOutputStream output = new ByteArrayOutputStream();
player.writeTo(output);
byteArray = output.toByteArray();
return byteArray;
}
反序列化: //Player反序列化
public void decodePlayer(byte[] serial) throws InvalidProtocolBufferException {
Immortaldb.Player player= Immortaldb.Player.parseFrom(serial);
// 这里取Player的各个项
long roleId = player.getRoleId();
……
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |