我有以下protobuf:
message FrameData {
... arbitrarily complex ...
}
message DataDump {
optional uint64 headerField1 = 1;
optional uint64 headerField2 = 2;
optional uint64 headerField3 = 3;
repeated FrameData frameData = 4;
}
我正在逐个创建frameData protobufs,并希望将DataDump protobuf写入文件。我可以通过构建DataDump protobuf并调用SerializeToOstream来完成这一操作,但问题是数据量达到了几百GB,这种方式需要先在内存中构建所有数据才能将其转储到磁盘上。
由于重复字段frameData是protobuf中的最后一个字段,我认为可以先将头部写入文件,然后在生成每个FrameData protobuf后迭代地流出frameData元素。
如何实现这一点?
writeDelimitedTo()
。 - undefined