我目前正在编写Java代码以检查协议缓冲区文件* .pb中的消息数
我想知道protobuf文件中是否存在包含消息数量信息的元数据或标头? 我正在遍历整个文件,我认为应该有一种更好的方法。
while ((m = message.getParserForType().parseDelimitedFrom(input)) != null) {
recordCount++;
}
谢谢 大卫
答案 0 :(得分:1)
没有标题或任何可告诉您文件中消息数量的内容。该格式仅包含varint格式的长度前缀,后跟消息有效负载,并针对您所拥有的尽可能多的消息进行重复。
但是,原则上您可以以更有效的方式计算消息的数量。如果您只想知道有多少个,可以读取长度前缀并跳过实际的消息有效负载而无需解析它们。