计算协议缓冲区文件中的消息数

时间:2018-09-19 00:07:25

标签: java protocol-buffers

我目前正在编写Java代码以检查协议缓冲区文件* .pb中的消息数

我想知道protobuf文件中是否存在包含消息数量信息的元数据或标头? 我正在遍历整个文件,我认为应该有一种更好的方法。

while ((m = message.getParserForType().parseDelimitedFrom(input)) != null) {
        recordCount++;
    }

谢谢 大卫

1 个答案:

答案 0 :(得分:1)

没有标题或任何可告诉您文件中消息数量的内容。该格式仅包含varint格式的长度前缀,后跟消息有效负载,并针对您所拥有的尽可能多的消息进行重复。

但是,原则上您可以以更有效的方式计算消息的数量。如果您只想知道有多少个,可以读取长度前缀并跳过实际的消息有效负载而无需解析它们。