用Java编码协议缓冲区

时间:2017-06-28 10:46:33

标签: java protocol-buffers

我是协议缓冲区的新手,所以我正在尝试一个示例代码。我的proto文件代码如下:

syntax="proto2"; 
package test;  
option java_package="com.example.test";

message Test1 {
  required int32 a = 1;
} 

我正确使用protec编译它。之后我想在Java代码中使用它。代码是

import com.example.test.Test1OuterClass;
import com.example.test.Test1OuterClass.Test1;
import java.io.*;
import java.util.*;

public class Testing {
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a number:");  
        int a = sc.nextInt();
        Test1.Builder t = Test1.newBuilder();
        t.setA(a).build();
    }  
} 

现在我想在此实现编码,但我无法做到。我在网上搜索并阅读了Google文档,但无法理解如何操作。有人可以告诉我如何在这里执行基本编码吗?

与protobufs中的编码相关的有用链接也很受欢迎。

1 个答案:

答案 0 :(得分:2)

Test1 obj = t.setA(a).build();

然后

byte[] arr = obj.toByteArray();

obj.writeTo(outputStream);