Protoc buf序列化、反序列化、转成字节流

先把proto文件转成java类,然后可以直接在类里添加main方法

 

1、序列化:对编译成java文件

Student.Builder buidler = Student.newBuilder();
        buidler.setName("Frank");
        Student student = buidler.build();
        System.out.println(student.toString());


2、获得byte[]:

student.toByteArray();


我们可以将它送到文件流中进行传输,这也是它的终极目的。也就是我们将protoc对象序列化成了字节流数据。 
大家注意这个toByteArray()产生的byte[]数组,它代表要全部传输的二进制数据,大家可以打印它的大小 array.length

 

3、反序列化:

Student.parseFrom(array);
byte[] array = student.toByteArray();

try {
    Student student1 = Student.parseFrom(array);
    System.out.println(student1.toString());
} catch (InvalidProtocolBufferException e) {
    e.printStackTrace();
}   

 

array是之前序列化后产生的byte数据,现在通过Student的静态方法parseFrom()可以数据反序列成Student对象

你可能感兴趣的:(Proto)