2011-12-07 4 views
27

क्या प्रोटोटा buffs में int8 या बाइट प्रकार के बराबर है? मैं एक बाइट सरणी वस्तु भेजना चाहता हूं।प्रोटोटा buffs में बाइट [] को एन्कोड करने के लिए कैसे करें

+4

एक सवाल protobuff प्रकार के कुछ प्रकार परिवर्तित करने के लिए तरीके प्रदान :) या असली प्रलेखन के दीवानों के लिए ... – sehe

उत्तर

29
+0

दुर्भाग्य से अभी भी तार करने के लिए serializes जावा में लेकिन लिंक के लिए धन्यवाद। –

+8

नहीं, प्रलेखन के अनुसार संबंधित जावा प्रकार 'बाइटस्ट्रिंग' है। आप 'toByteArray' विधि का उपयोग करके बाइट सरणी स्वयं प्राप्त कर सकते हैं। – JesperE

+0

यदि आपके पास पहले से बाइट [] सरणी है तो केवल LiteralByteString का उपयोग करें ताकि आपको इसे कॉपी करने की आवश्यकता न हो। – marios

7

आप एक एकल बाइट स्टोर करने के लिए देख रहे हैं, फिर भी, मैं Int32 उपयोग करने का सुझाव चाहते हैं। यह एक 'संस्करण' प्रकार परिवर्तनीय है जो उसमें संग्रहीत डेटा के आधार पर आकार बदल देगा। तो यदि आप एक बाइट संग्रहित कर रहे हैं, तो यह सबसे छोटी संरचना होगी। बाइट्स डेटा प्रकार वास्तव में तुलना में काफी बड़ा है। ऐसा इसलिए है क्योंकि बाइट्स संरचना में इंडेक्स की लंबाई और अन्य गुण जैसे डेटा होते हैं।

सीरियलाइजेशन पर, मैंने बाइट्स में एक इंट 32 में संग्रहीत एक बाइट से स्विच करते समय लगभग आधे आकार का आकार देखा।

हालांकि, ध्यान दें कि इस नहींकई बाइट्स बाइट्स, जो मैं व्यक्तिगत Int32 भंडारण तुलना में काफी छोटा हो जाएगा संदेह में संग्रहीत किया जा रहा करने के लिए लागू होते हैं।

3

ByteString वर्ग असली आद्य के दीवानों के लिए "बाइट" या ByteString

public static ByteString CopyFrom(params byte[] bytes); 
public static ByteString CopyFrom(string text, Encoding encoding); 
संबंधित मुद्दे