我在proto
文件中有以下消息
message User
required string name = 1;
required string password = 2;
发布于 2017-10-11 10:22:59
这只适用于一些额外的编码。当protobuf从流中读取消息时,它不知道一条消息的长度。它将字段流简单地看作是名称/值对,而不是消息开始或结束的指示符。
来自文档
如果您想要将多条消息写入单个文件或流,则应由您跟踪一条消息的结束位置和下一条消息的开始位置。协议缓冲线格式并不是自定界的,因此协议缓冲区解析器无法确定消息自行结束的位置。
Google的实现包含了一些用于这个用途的助手类。看看CodedInputStream和CodedOutputStream。
一种可能的写作方式:
一种可能的阅读方式:
https://stackoverflow.com/questions/46694301
复制相似问题