ParseFromArray 函数在 C++ 中如何工作以及如何使用它来将二进制文件读入 protobuf?
How does the ParseFromArray function work in C++ and how can it be used to read a binary file into a protobuf?
我有点不确定 C++ 中的 ParseFromArray(...) 函数究竟是如何工作的。它到底有什么作用,如何使用 属性?例如,如果我试图将二进制文件读入 protobuf,我该如何使用 ParseFromArray(...) 来完成它。感谢您的帮助。
通常情况下,如果你想从一个文件中解析一个 protobuf,你会确保以二进制模式打开文件,然后调用 ParseFromIstream
。
ParseFromArray
和 ParseFromString
(仅参数的数据类型不同)用于解析已经在内存中的 protobuf。如果 protobuf 只是文件的一部分,并且您知道如何提取字节,您可能想要这样做。如果您将字节提取(或读取)为 std::string
,您可以使用 ParseFromString
,但大多数时候您将使用 std::istream::read
来读取二进制文件,并且该函数读取数据放入缓冲区(这是一个 char
的数组)。然后,您将使用缓冲区的起始地址(转换为 void*
)及其长度调用 ParseFromArray
。
我有点不确定 C++ 中的 ParseFromArray(...) 函数究竟是如何工作的。它到底有什么作用,如何使用 属性?例如,如果我试图将二进制文件读入 protobuf,我该如何使用 ParseFromArray(...) 来完成它。感谢您的帮助。
通常情况下,如果你想从一个文件中解析一个 protobuf,你会确保以二进制模式打开文件,然后调用 ParseFromIstream
。
ParseFromArray
和 ParseFromString
(仅参数的数据类型不同)用于解析已经在内存中的 protobuf。如果 protobuf 只是文件的一部分,并且您知道如何提取字节,您可能想要这样做。如果您将字节提取(或读取)为 std::string
,您可以使用 ParseFromString
,但大多数时候您将使用 std::istream::read
来读取二进制文件,并且该函数读取数据放入缓冲区(这是一个 char
的数组)。然后,您将使用缓冲区的起始地址(转换为 void*
)及其长度调用 ParseFromArray
。