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对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值