আমি স্ট্রাক্টকে কীভাবে রূপান্তর করব System.Byte byte[] সি # তে কোনও System.IO.Streamবস্তুতে ?
আমি স্ট্রাক্টকে কীভাবে রূপান্তর করব 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ডিফল্টরূপে বাফারে অতিরিক্ত স্থান বরাদ্দ রয়েছে (ঠিক যেমন একটি তালিকার সাথে)। এটি আপনাকে ওভারলোড ব্যবহার করে সহজেই মোকাবেলা করতে পারে যা আপনাকে ক্ষমতা সেট করার অনুমতি দেয় তবে কেবলমাত্র কার্যকর যদি আপনি স্ট্রিমে কোনও ডেটা লেখার প্রত্যাশা না করেন (বা আপনি যদি জানেন যে আপনার কত অতিরিক্ত বাইটের দরকার হতে পারে) )। তবে আমি সন্দেহ করি যে জিটবিট এই বিষয়টিকে উল্লেখ করছে যে আপনি যখন byte[]কনস্ট্রাক্টর ব্যবহার করেন তখন অ্যারেটি অনুলিপি করা হয় না - MemoryStreamযুক্তিটিতে অ্যারেটিকে বোঝায়। এটি ভাল এবং খারাপ উভয়ই হতে পারে, এবং এটি এমএসডিএন-তে নথিভুক্ত নয় এমন কিছুটা লজ্জার বিষয় :)
দেখব MemoryStreamবর্গ।