Google Protocol Buffer是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go、python、js等,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
1.java_package属性:在class生成时,会在相对路径后加上这个属性对应的包名,在定义时需要与项目中你希望放Protobuf Class的路径相同。 2.java_outer_classname属性:这个属性是在生成Class后的类名,下面包含的message都是这个class下的内部类。
java_out:生成的java文件输出目录 后面的指定的是proto文件的地址
下列使用上面2.1proto文件中的UserInfo对象来进行举例:
同时Protobuf的对象parseFrom方法还有通过InputStream和ByteString对象来生成对象的方式。
同时,protobuf的每个对象也可以序列化为InputStream和ByteString等。
新闻热点
疑难解答