.NET 4.x Размер массива для MemoryStream и NotSupportedException - C#
Формулировка задачи:
Почему если изменить размер массива с 254 на любой другой, выкидывает NotSupportedException в строке write.Flush(); почему размер массива влияет на это? Объясните пожалуйста.
static void Main() { byte[] storage = new byte[254]; MemoryStream memstr = new MemoryStream(storage); StreamWriter write = new StreamWriter(memstr); StreamReader reade = new StreamReader(memstr); try { for(int i = 0; i < 10; i++) { write.WriteLine("byte [" + i + "]: " + i); } write.WriteLine("."); write.Flush(); Console.WriteLine("Вывод непосредственно с массива"); foreach (char ch in storage) { if (ch == '.') break; Console.Write(ch); } Console.WriteLine("Вывод с использованием ридера"); memstr.Seek(0, SeekOrigin.Begin); string str = reade.ReadLine(); while(str != null) { str = reade.ReadLine(); if (str[0] == '.') break; Console.WriteLine(str); } }catch(IOException exc) { Console.WriteLine("Ошибка ввода-вывода" + exc.Message); } finally { reade.Close(); write.Close(); } Console.Read();
Решение задачи: «.NET 4.x Размер массива для MemoryStream и NotSupportedException»
textual
Листинг программы
static void Main() { MemoryStream memstr = new MemoryStream(); StreamWriter write = new StreamWriter(memstr); StreamReader reade = new StreamReader(memstr); try { for(int i = 0; i < 10; i++) { write.WriteLine("byte [" + i + "]: " + i); } write.WriteLine("."); write.Flush(); byte[] storage = memstr.ToArray(); Console.WriteLine("Вывод непосредственно с массива"); // Далее без изменений ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д