.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("Вывод непосредственно с массива");
// Далее без изменений ...