2017-06-28 166 views
1

我是協議緩衝區的新手,所以我嘗試了一個示例代碼。我的原始文件代碼如下:Java中的編碼協議緩衝區

syntax="proto2"; 
package test; 
option java_package="com.example.test"; 

message Test1 { 
    required int32 a = 1; 
} 

我使用protec正確編譯它。之後,我想在Java代碼中使用它。代碼是

import com.example.test.Test1OuterClass; 
import com.example.test.Test1OuterClass.Test1; 
import java.io.*; 
import java.util.*; 

public class Testing { 
    public static void main(String[] args) throws Exception{ 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter a number:"); 
     int a = sc.nextInt(); 
     Test1.Builder t = Test1.newBuilder(); 
     t.setA(a).build(); 
    } 
} 

現在我想在此實現編碼,但我無法做到這一點。我在網上搜索並閱讀了Google文檔,但無法理解如何去做。有人能告訴我如何在這裏執行基本編碼嗎?與protobufs中的編碼有關的有用鏈接也被讚賞。
謝謝!

回答

2
Test1 obj = t.setA(a).build(); 

然後

byte[] arr = obj.toByteArray(); 

obj.writeTo(outputStream); 
+0

如果非要進行解碼,會是怎樣的語法? – Aditya

+0

@Aditya'Test1.parseFrom'?請參閱https://developers.google.com/protocol-buffers/docs/javatutorial –

+0

如何以及在哪裏查看生成的編碼文件? – Aditya