protobuf的基本使用(读取和写入)——java
本文主要参考:
protobuf官方文档。
好,下面上货。我们这里说的是如何使用protobuf。首先protobuf提供了一个约定——.proto文件。然后约定好的双方都通过这种格式进行对数据进行处理即可。
下面是使用的一个例子:
1、添加maven依赖
3、首先是把protobuf格式的类进行编码。
package com.example.demo;
import com.example.demo.proto.AddressBookProtos;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class ProtoWrite {
public static Logger logger = LoggerFactory.getLogger("ProtoWrite");
public static void main(String[] args) {
AddressBookProtos.Person cat = AddressBookProtos.Person.newBuilder().setId(1234)
.setName("John Doe")
.setEmail("jdoe@example.com")
.addPhones(
AddressBookProtos.Person.PhoneNumber.newBuilder()
.setNumber("555-4321")
.setType(AddressBookProtos.Person.PhoneType.HOME))
.build();
System.out.println(cat);
System.out.println("-=============-");
try {
System.out.println(cat.toByteArray());
System.out.println("-=============-");
cat.writeTo(System.out);
System.out.println("-=============-");
cat.writeTo(new FileOutputStream("C:\\Users\\admin\\Desktop\\22.txt"));
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
4、然后是读取的过程
package com.example.demo;
import com.example.demo.proto.AddressBookProtos;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ProtoRead {
public static Logger logger = LoggerFactory.getLogger("ProtoRead");
public static void main(String[] args) {
try {
AddressBookProtos.Person person= AddressBookProtos.Person.parseFrom(new FileInputStream("C:\\Users\\admin\\Desktop\\22.txt"));
System.out.println(person);
} catch (IOException e1) {
e1.printStackTrace();
} finally {
}
}
}
5、注意,在java工程中maven的porotobuf的版本需要和protoc的版本保持一致,不然.proto文件工程经过编译后会出现错误。
【protobuf的基本使用(读取和写入)——java】
可以看一下输出的文件中的内容:
John Doe? jdoe@example.com"
这文件里面的数据是通过编码后得到的。
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量