我在proto
文件中有以下消息
message User
required string name = 1;
required string password = 2;
答案 0 :(得分:0)
这仅适用于一些额外的编码。当protobuf从流中读取消息时,它不知道一条消息的长度。它只看到一个字段流作为名称/值对,并且没有指示消息的开始或结束。
来自docs:
如果要将多条消息写入单个文件或流,则需要跟踪一条消息的结束位置和下一条消息的开始位置。协议缓冲区有线格式不是自定界限的,因此协议缓冲区解析器无法确定消息自己的结束位置。
Google的实现包含一些此用例的帮助程序类。请查看CodedInputStream和CodedOutputStream。
写作的一种可能方式:
阅读的一种可能方式: