protobuf的安裝和使用


以下全部基於win7系統。

protobuf是什么,有什么用網上說的已經很多了。這里就是說一下怎么使用。就當給自己做個筆記吧。

.proto文件的語法什么的也請網上查看,挺多的。

第一步: 下載protoc.exe 和 protobuf-java-2.4.1.jar。這里要注意版本區別(網上不少人說要下載protoc-2.4.1-win32.zip,但是沒有找到)。其實protobuf就不用安裝,只是使用protoc.exe生成一下java文件罷了。

下載路徑 http://pan.baidu.com/s/1sj0VX1r

也可以下載最新版:https://developers.google.com/protocol-buffers/docs/downloads

第二步:下載好后任意放到一個文件夾,這里我放到了E:/protobuf下。然后新建一個person.proto文件:

option java_package = "com.zh.test";  
option java_outer_classname = "Persons";
message PersonInfo  {  
  required int32 id = 1;
  required string name = 2;
} 

第三步:生成java文件。在cmd中執行命令E:\protobuf>protoc.exe --java_out=./ person.proto。注意:./后面有一個空格

    然后就能看到在當前文件夾下生成一個com文件夾,這就是上面生成的.java文件的包了。逐級打開包就能看到Persons.java文件了。

第四步:把生成的Persons.java文件拷貝的項目中,然后就可以測試了,看如下代碼

public class TestProtobuf {
    public static void main(String[] args) {
        Persons.PersonInfo.Builder builder=Persons.PersonInfo.newBuilder();  
        builder.setId(1);
        builder.setName("zhang");
        Persons.PersonInfo info=builder.build();  
        byte[] result=info.toByteArray();
        System.out.println("==========="+result);
        
        try {
            Persons.PersonInfo msg = Persons.PersonInfo.parseFrom(result);
            System.out.println(msg.getId());
            System.out.println(msg.getName());
        } catch (InvalidProtocolBufferException e) {
            e.printStackTrace();
        }
    }

}

 

OK,到這里就完成了序列化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM