protobuf java demo

写在之前:

安装 eclipse 的 protobuf-dt 插件,具体见

http://code.google.com/p/protobuf-dt/wiki/Installing

我在安装第一个插件 Xtext 的时候遇到各种问题,索性直接在 eclipse marketplace 搜索 install

设置编译器 protoc.exe 的路径

protobuf java demo

1.创建一个工程,并引入protobuf 的 java 包

mvn archetype:create -Dgroup=com.coffee -DartifactId=coffee
pom文件中加入依赖
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>2.4.1</version>
</dependency>
2.创建文件 leeInfo.proto
package kafeiwu;

message Lee {
	required int32 id=1;
	required string name=2;
}
在默认的 src-gen 目录下(proto插件的option里有设置,一般设置src/main/java)有根据lee.proto文件生成的java文件 LeeInfo.java,将这里生成的包整个copy到src/main/java目录下

3.创建一个测试文件Test.java


package com.coffee.kafeiwu;

public class Test {

    public static void main(String[] args) throws Exception {
        LeeInfo.Lee.Builder builder = LeeInfo.Lee.newBuilder();
        builder.setId(111);
        builder.setName("coffee");

        LeeInfo.Lee lee = builder.build();
        // 序列化     
        byte[] result = lee.toByteArray();

        for (byte bt : result) {
            System.out.print(Integer.toString(bt, 16) + " ");
        }

        System.out.println("\n"); // 反序列化
        LeeInfo.Lee info2 = LeeInfo.Lee.parseFrom(result);
        System.out.println(info2);
    }
}


具体结果

8 6f 12 6 63 6f 66 66 65 65 

id: 111
name: "coffee"
分析待续.....

你可能感兴趣的:(protobuf java demo)