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目录添加到项目
测试代码:
结果:
下载地址:
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博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-2135419/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29254281/viewspace-2135419/