Застосування класу MemoryStream

Книга розрахована на широке коло читачів, які цікавляться програмуванням на C#. Введіть сюди коротку інструкцію
C# 4.0: повне керівництво
Застосування класу MemoryStream
Застосування класу MemoryStream
MemoryStream(byte[] buffer)
Як приклад наведено нижче програма, що демонструє застосування класу MemoryStream в операціях введення-виведення.
// Продемонструвати застосування класу MemoryStream.using System;using System.IO;class MemStrDemostatic void Main()byte[] storage = new byte[255];// Створити запам'ятовуючий потік.MemoryStream memstrm = new MemoryStream(storage);// читання та запису даних у потоки.StreamWriter memwtr = new StreamWriter(memstrm);StreamReader memrdr = новий StreamReader(memstrm);try// Записати дані в пам'ять, використовуючи об'єкт memwtr.for(int i=0; i
Ось який результат призводить виконання цієї програми.
Читання прямо з масиву storage:byte [0]: 0byte [1]: 1byte [ 2]: 2byte [3]: 3byte [4]: 4byte [5]: 5byte [6]: 6byte [7]: 7byte [8]: 8byte [9]: 9Читання з потоку за допомогою об'єкта memrdr:byte [1]: 1byte [2]: 2byte [3]: 3byte [4]: 4byte [5]: 5byte [6]: 6byte [7]: 7byte [8]: 8byte [9]: 9
У програмі спочатку створюється масив байтів, званий storage. Потім цей масив використовується як основна пам'ять для об'єкта memstrm класу MemoryStream. З об'єкта memstrm, у свою чергу, створюютьсяоб'єкти memrdr класу StreamReader та memwtr класу StreamWriter . За допомогою об'єкта memwtr дані записуються в запам'ятовуючий потік. Зверніть увагу на те, що після запису даних для об'єкта memwtr викликається метод Flush() . Це необхідно для того, щоб вміст буфера цього об'єкта записувався безпосередньо в базовий масив. Далі вміст базового масиву байтів відображається вручну в циклі for each. Після цього покажчик файлу встановлюється за допомогою методу Seek() на початок потоку, що запам'ятовує, з якого потім вводяться дані за допомогою об'єкта потоку memrdr .