摘要:基于入門編寫文件將文件轉換為代碼下載該工具將加入到所在目錄命令行進入所在目錄執行序列化反序列化實例化添加數據小明小黃建立實體數據將數據寫入流中讀取流
protobuf基于java入門 1. 編寫protobuf文件——person.proto
package protobuf; option java_package="com.sean.person"; option java_outer_classname = "PersonEntity"; message Person{ required int32 id = 1; required string name = 2; optional string email=3; repeated string friends = 4; }2.將protobuf文件轉換為java代碼
下載protoc.exe該工具
將person.proto加入到protoc.exe所在目錄
命令行進入protoc.exe所在目錄
執行protoc ./person.proto --java_out=./
3.序列化 4.反序列化public class Test { public static void main(String[] args) throws IOException { //實例化builder PersonEntity.Person.Builder personBuilder = PersonEntity.Person.newBuilder(); //添加數據 personBuilder.setId(1).setName("Sean").setEmail("123@qq.com").addFriends("小明").addFriends("小黃"); //建立實體數據 PersonEntity.Person msg = personBuilder.build(); //將數據寫入流中 ByteArrayOutputStream output = new ByteArrayOutputStream(); msg.writeTo(output); byte[] bytes = output.toByteArray(); System.out.println("person size: "+bytes.length); //讀取流 ByteArrayInputStream bis = new ByteArrayInputStream(bytes); PersonEntity.Person person = PersonEntity.Person.parseFrom(bis); System.out.println("person ID: " + person.getId()); System.out.println("person name: " + person.getName()); System.out.println("person email: " + person.getEmail()); System.out.println("person friends: "+person.getFriendsList()); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67199.html
摘要:消息格式有三個字段,在消息中承載的數據分別對應于每一個字段。所以應該為那些頻繁出現的消息元素保留之內的標識號。示例編譯這里我們用編譯一下,看得到什么文件名使用以下命令編譯生成了兩個文件此文件包含生成的和類。 gRPC 一開始由 google 開發,是一款語言中立、平臺中立、開源的遠程過程調用(RPC)系統。 本文通過一個簡單的 Hello World 例子來向您介紹 gRPC 。 gR...
摘要:結構作為服務端作為序列化數據的協議前端通訊演示地址服務端實現啟動類長連接示例主線程組從線程組請求的解碼和編碼把多個消息轉換為一個單一的或是,原因是解碼器會在每個消息中生成多個消息對象主要用于處理大數據流,比如一個大小的文件如果你直接傳輸肯定 結構 netty 作為服務端 protobuf 作為序列化數據的協議 websocket 前端通訊 演示 GitHub 地址 showImg(...
摘要:結構作為服務端作為序列化數據的協議前端通訊演示地址服務端實現啟動類長連接示例主線程組從線程組請求的解碼和編碼把多個消息轉換為一個單一的或是,原因是解碼器會在每個消息中生成多個消息對象主要用于處理大數據流,比如一個大小的文件如果你直接傳輸肯定 結構 netty 作為服務端 protobuf 作為序列化數據的協議 websocket 前端通訊 演示 GitHub 地址 showImg(...
摘要:優點在谷歌內部長期使用產品成熟度高跨語言支持多種語言包括和編碼后的消息更小更加有利于存儲和傳輸編解碼的性能非常高支持不同協議版本的前向兼容支持定義可選和必選字段的入門是一個靈活高效結構化的數據序列化框架相比與等傳統的序列化工具它更小更快更簡 Google Protobuf 優點: 在谷歌內部長期使用, 產品成熟度高. 跨語言、支持多種語言, 包括 C++、Java 和 Python....
閱讀 766·2023-04-25 17:33
閱讀 3626·2021-07-29 14:49
閱讀 2480·2019-08-30 15:53
閱讀 3435·2019-08-29 16:27
閱讀 2000·2019-08-29 16:11
閱讀 1030·2019-08-29 14:17
閱讀 2432·2019-08-29 13:47
閱讀 2016·2019-08-29 13:28