ProtoBuf 是谷歌开源的序列化组件.二进制,速度快.
下载地址:
https://github.com/google/protobuf/releases/tag/v3.0.0
下载protobuf-java-3.0.0.zip文件之后,需要一台Linux服务器编译
我在Linux解压该文件之后,进入目录/tmp/protobuf-3.0.0
执行
./configure
make
make install
待编译之后,进入/tmp/protobuf-3.0.0/java 目录执行
mvn clean package
然后下载
/tmp/protobuf-3.0.0/java/core/target/protobuf-java-3.0.0.jar 文件至项目.
以example的示例文件为例
cd /tmp/protobuf-3.0.0/examples
protoc --java_out=/tmp addressbook.proto
然后将/tmp下com目录添加到项目
测试代码:
-
package com.example.tutorial;
-
-
import java.io.ByteArrayInputStream;
-
import java.io.ByteArrayOutputStream;
-
import java.io.IOException;
-
-
import com.example.tutorial.AddressBookProtos.AddressBook;
-
import com.example.tutorial.AddressBookProtos.Person;
-
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
-
AddressBook.Builder addressBook = AddressBook.newBuilder();
-
Person.Builder personBuilder = Person.newBuilder();
-
personBuilder.setName("xiaohuali");
-
personBuilder.setId(1);
-
personBuilder.setEmail("youxiang");
-
addressBook.addPeople(personBuilder.build());
-
-
personBuilder.setName("laohuali");
-
personBuilder.setId(2);
-
personBuilder.setEmail("youxiang");
-
addressBook.addPeople(personBuilder.build());
-
-
-
AddressBook book = addressBook.build();
-
ByteArrayOutputStream output = new ByteArrayOutputStream();
-
book.writeTo(output);
-
byte[] byteArray = output.toByteArray();
-
-
ByteArrayInputStream input = new ByteArrayInputStream(byteArray);
-
-
-
AddressBook b = AddressBook.parseFrom(input);
-
-
System.out.println(b.toString());
-
}
-
}
结果:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-2135419/
,如需转载,请注明出处,否则将追究法律责任。