// Продемонстрировать применение класса MemoryStream.

using System; using System.10;

class MemStrDemo { static void Main() {

byte[] storage = new byte[255];

// Создать запоминающий поток.

MemoryStream memsttm = new MemoryStream(storage);

// чтения и записи данных в потоки.

StreamWriter memwtr = new StreamWriter(memstrm);

StreamReader memrdr = new StreamReader(memstrm);

try {

// Записать данные в память, используя объект memwtr. for(int i=0; i < 10; i++)

memwtr.WriteLine('byte [' + i + ']: ' + i);

// Поставить в конце точку, memwtr.WriteLine('.');

memwtr.Flush() ;

Console.WriteLine('Чтение прямо из массива storage: ');

// Отобразить содержимое массива storage непосредственно. foreach(char ch in storage) { if (ch == '.') break;

Console.Write(ch);

}

Console.WriteLine('ХпЧтение из потока с помощью объекта memrdr: ');

// Читать из объекта memstrm средствами ввода данных из потока, memstrm.Seek(0, SeekOrigin.Begin); // -установить указатель файла

// в исходное положение

string str = memrdr.ReadLine() ; while(str != null) {

str = memrdr.ReadLine() ; if(str[0] == '.') break;

Console.WriteLine(str) ;

}

} catch(IOException exc) {

Console.WriteLine('Ошибка ввода-выводап' + exc.Message);

} finally {

// Освободить ресурсы считывающего и записывающего потоков, memwtr.Close(); memrdr.Close() ;

}

}

}

Вот к какому результату приводит выполнение этой программы.

Чтение прямо из массива storage:

byte [0]: 0

byte [1]: 1

byte [2]: 2

byte [3]: 3

byte [4] : 4

byte [5] : 5

byte [6]: 6

byte [7]: 7

byte [8] : 8

byte [9]: 9

Чтение из потока с помощью объекта memrdr:

byte [1]: 1

byte [2]: 2

byte [3]: 3

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату