这个问题在这里已有答案:
我是编程新手。对不起,如果这是一个太初学的问题。
我正在研究家庭作业的协议缓冲区。我不知道如何从Message获取字节。
以下是Google Protocol Buffers文档中的示例,
message Test1 {
required int32 a = 1;
}
在应用程序中,您创建一个Test1消息并将其设置为150.然后将消息序列化为输出流。如果您能够检查编码的消息,您会看到三个字节:
08 96 01
我正在使用Eclipse和Java。我在下面创建了代码。
package com.example.tutorial;
import java.util.Scanner;
import com.example.tutorial.TestProtos.Test1;
import com.example.tutorial.TestProtos.Test1OrBuilder;
public class TestByte {
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();
Test1 obj = t.setA(a).build();
byte[] arr = obj.toByteArray();
System.out.println("byte: "+arr);
当我进入'150'时,它给了我
byte: [B@45ee12a7
我想获得三个字节,如谷歌文档中的示例。我问如何使用协议缓冲区从编码消息中获取字节。
谁能告诉我怎么样?谢谢!!
尝试
System.out.println(Arrays.toString(obj));
要么
System.out.println(Arrays.toString(arr));