Свойство CanWrite
Stream.CanWrite равен false,
если поток открыт только на чтение.
Запись выполняют через
Write.
Чтение -
CanRead.
Буфер сбрасывают
Flush
перед закрытием файлового потока.
Синтаксис
bool ok = stream.CanWrite;
Пример
Давайте проверим обычный
MemoryStream:
using System;
using System.IO;
class Program
{
static void Main()
{
using var ms = new MemoryStream();
bool res = ms.CanWrite;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте откроем буфер только для чтения:
using System;
using System.IO;
class Program
{
static void Main()
{
byte[] data = [1, 2, 3, 4, 5];
using var ms = new MemoryStream(data, writable: false);
bool res = ms.CanWrite;
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте сравним с CanRead у того же
потока только для чтения:
using System;
using System.IO;
class Program
{
static void Main()
{
byte[] data = [1, 2, 3, 4, 5];
using var ms = new MemoryStream(data, writable: false);
bool res = ms.CanRead;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True