protobuf 序列化进文件
时间: 2023-09-01 20:07:09 浏览: 84
protobuf序列化工具 v.1.1
5星 · 资源好评率100%
使用 protocol buffers 将数据序列化到文件中,可以按照以下步骤进行:
1. 定义 protobuf 消息类型
在 .proto 文件中定义需要序列化的消息类型,并使用 protocol buffer 编译器生成对应的代码。
例如,定义一个名为 Person 的消息类型:
```
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
repeated string address = 3;
}
```
2. 创建消息对象并赋值
在代码中创建消息对象,并设置消息的各个字段值。
例如,创建一个名为 person 的消息对象,并设置其字段值:
```
Person person;
person.set_name("John");
person.set_age(30);
person.add_address("123 Main St.");
person.add_address("456 Second St.");
```
3. 序列化消息到文件
使用 FileOutputStream 将消息序列化到文件中。
例如,将 person 消息序列化到名为 person.dat 的文件中:
```
fstream output("person.dat", ios::out | ios::binary);
person.SerializeToOstream(&output);
```
完整代码示例:
```
#include <iostream>
#include <fstream>
#include "person.pb.h"
using namespace std;
int main() {
Person person;
person.set_name("John");
person.set_age(30);
person.add_address("123 Main St.");
person.add_address("456 Second St.");
fstream output("person.dat", ios::out | ios::binary);
person.SerializeToOstream(&output);
return 0;
}
```
阅读全文