मैं C # में System.Byte
byte[]
किसी System.IO.Stream
ऑब्जेक्ट को संरचना कैसे परिवर्तित करूं ?
मैं C # में System.Byte
byte[]
किसी System.IO.Stream
ऑब्जेक्ट को संरचना कैसे परिवर्तित करूं ?
जवाबों:
बाइट को एक स्ट्रीम में बदलने का सबसे आसान तरीका MemoryStream
क्लास का उपयोग कर रहा है :
Stream stream = new MemoryStream(byteArray);
stream.ToArray()
यदि आप अपने बाइट सरणी वापस चाहते हैं।
तुम MemoryStream.Write
विधि खोज रहे हो ।
उदाहरण के लिए, निम्न कोड एक byte[]
सरणी की सामग्री को मेमोरी स्ट्रीम में लिखेगा :
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
वैकल्पिक रूप से, आप बाइट सरणी के आधार पर एक नई , गैर-रिज़र्व करने योग्य MemoryStream
वस्तु बना सकते हैं :
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Write
अधिक मेमोरी खपत वाला हैnew MemoryStream(myByteArray)
MemoryStream
डिफ़ॉल्ट रूप से बफर में अतिरिक्त स्थान आवंटित किया गया है (जैसे एक सूची के साथ)। यह आसानी से अधिभार का उपयोग करके निपटाया जा सकता है जो आपको क्षमता निर्धारित करने की अनुमति देता है, लेकिन यह वास्तव में केवल तभी उपयोगी है जब आप स्ट्रीम के किसी भी डेटा को लिखने की उम्मीद नहीं करते हैं (या यदि आप जानते हैं कि आपको कितने अतिरिक्त बाइट्स की आवश्यकता है )। लेकिन मुझे संदेह है कि jitbit इस तथ्य का उल्लेख कर सकता है कि जब आप byte[]
कंस्ट्रक्टर का उपयोग करते हैं , तो सरणी की प्रतिलिपि नहीं बनाई जाती है - MemoryStream
तर्क में सरणी को संदर्भित करता है। यह अच्छा और बुरा दोनों हो सकता है, और यह शर्म की बात है कि यह MSDN पर प्रलेखित नहीं है :)
में देखो MemoryStream
वर्ग।