成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

protobuf基于java入門(mén)

lentoo / 1754人閱讀

摘要:基于入門(mén)編寫(xiě)文件將文件轉(zhuǎn)換為代碼下載該工具將加入到所在目錄命令行進(jìn)入所在目錄執(zhí)行序列化反序列化實(shí)例化添加數(shù)據(jù)小明小黃建立實(shí)體數(shù)據(jù)將數(shù)據(jù)寫(xiě)入流中讀取流

protobuf基于java入門(mén) 1. 編寫(xiě)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文件轉(zhuǎn)換為java代碼

下載protoc.exe該工具

將person.proto加入到protoc.exe所在目錄

命令行進(jìn)入protoc.exe所在目錄

執(zhí)行protoc ./person.proto --java_out=./

3.序列化 4.反序列化
public class Test {
    public static void main(String[] args) throws IOException {
        //實(shí)例化builder
        PersonEntity.Person.Builder personBuilder = PersonEntity.Person.newBuilder();
        //添加數(shù)據(jù)
        personBuilder.setId(1).setName("Sean").setEmail("[email protected]").addFriends("小明").addFriends("小黃");
        //建立實(shí)體數(shù)據(jù)
        PersonEntity.Person msg = personBuilder.build();
        //將數(shù)據(jù)寫(xiě)入流中
        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());
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67199.html

相關(guān)文章

  • Python gRPC 入門(mén)

    摘要:消息格式有三個(gè)字段,在消息中承載的數(shù)據(jù)分別對(duì)應(yīng)于每一個(gè)字段。所以應(yīng)該為那些頻繁出現(xiàn)的消息元素保留之內(nèi)的標(biāo)識(shí)號(hào)。示例編譯這里我們用編譯一下,看得到什么文件名使用以下命令編譯生成了兩個(gè)文件此文件包含生成的和類(lèi)。 gRPC 一開(kāi)始由 google 開(kāi)發(fā),是一款語(yǔ)言中立、平臺(tái)中立、開(kāi)源的遠(yuǎn)程過(guò)程調(diào)用(RPC)系統(tǒng)。 本文通過(guò)一個(gè)簡(jiǎn)單的 Hello World 例子來(lái)向您介紹 gRPC 。 gR...

    ideaa 評(píng)論0 收藏0
  • netty 基于 protobuf 協(xié)議 實(shí)現(xiàn) websocket 版本的簡(jiǎn)易客服系統(tǒng)

    摘要:結(jié)構(gòu)作為服務(wù)端作為序列化數(shù)據(jù)的協(xié)議前端通訊演示地址服務(wù)端實(shí)現(xiàn)啟動(dòng)類(lèi)長(zhǎng)連接示例主線程組從線程組請(qǐng)求的解碼和編碼把多個(gè)消息轉(zhuǎn)換為一個(gè)單一的或是,原因是解碼器會(huì)在每個(gè)消息中生成多個(gè)消息對(duì)象主要用于處理大數(shù)據(jù)流,比如一個(gè)大小的文件如果你直接傳輸肯定 結(jié)構(gòu) netty 作為服務(wù)端 protobuf 作為序列化數(shù)據(jù)的協(xié)議 websocket 前端通訊 演示 GitHub 地址 showImg(...

    wua_wua2012 評(píng)論0 收藏0
  • netty 基于 protobuf 協(xié)議 實(shí)現(xiàn) websocket 版本的簡(jiǎn)易客服系統(tǒng)

    摘要:結(jié)構(gòu)作為服務(wù)端作為序列化數(shù)據(jù)的協(xié)議前端通訊演示地址服務(wù)端實(shí)現(xiàn)啟動(dòng)類(lèi)長(zhǎng)連接示例主線程組從線程組請(qǐng)求的解碼和編碼把多個(gè)消息轉(zhuǎn)換為一個(gè)單一的或是,原因是解碼器會(huì)在每個(gè)消息中生成多個(gè)消息對(duì)象主要用于處理大數(shù)據(jù)流,比如一個(gè)大小的文件如果你直接傳輸肯定 結(jié)構(gòu) netty 作為服務(wù)端 protobuf 作為序列化數(shù)據(jù)的協(xié)議 websocket 前端通訊 演示 GitHub 地址 showImg(...

    Shihira 評(píng)論0 收藏0
  • Google Protobuf 編解碼

    摘要:優(yōu)點(diǎn)在谷歌內(nèi)部長(zhǎng)期使用產(chǎn)品成熟度高跨語(yǔ)言支持多種語(yǔ)言包括和編碼后的消息更小更加有利于存儲(chǔ)和傳輸編解碼的性能非常高支持不同協(xié)議版本的前向兼容支持定義可選和必選字段的入門(mén)是一個(gè)靈活高效結(jié)構(gòu)化的數(shù)據(jù)序列化框架相比與等傳統(tǒng)的序列化工具它更小更快更簡(jiǎn) Google Protobuf 優(yōu)點(diǎn): 在谷歌內(nèi)部長(zhǎng)期使用, 產(chǎn)品成熟度高. 跨語(yǔ)言、支持多種語(yǔ)言, 包括 C++、Java 和 Python....

    Eric 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<