Поделиться через


FileStream.Write Метод

Определение

Перегрузки

Write(ReadOnlySpan<Byte>)

Записывает последовательность байтов в текущий файловый поток из диапазона только для чтения и перемещает текущую позицию внутри файлового потока на число записанных байтов.

Write(Byte[], Int32, Int32)

Записывает блок байтов в файловый поток.

Write(ReadOnlySpan<Byte>)

Исходный код:
FileStream.cs
Исходный код:
FileStream.cs
Исходный код:
FileStream.cs

Записывает последовательность байтов в текущий файловый поток из диапазона только для чтения и перемещает текущую позицию внутри файлового потока на число записанных байтов.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write (ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Параметры

buffer
ReadOnlySpan<Byte>

Область памяти. Этот метод копирует содержимое данной области в текущий файловый поток.

Исключения

.NET 8 и более поздних версий: базовый канал закрыт или отключен.

Комментарии

Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись. Используйте метод для WriteAsync асинхронной записи в текущий поток.

Если операция записи выполнена успешно, позиция в потоке файлов увеличивается на количество записанных байтов. Если возникает исключение, позиция в потоке файлов остается неизменной.

Применяется к

Write(Byte[], Int32, Int32)

Исходный код:
FileStream.cs
Исходный код:
FileStream.cs
Исходный код:
FileStream.cs

Записывает блок байтов в файловый поток.

public:
 override void Write(cli::array <System::Byte> ^ array, int offset, int count);
public:
 override void Write(cli::array <System::Byte> ^ buffer, int offset, int count);
public override void Write (byte[] array, int offset, int count);
public override void Write (byte[] buffer, int offset, int count);
override this.Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overrides Sub Write (array As Byte(), offset As Integer, count As Integer)
Public Overrides Sub Write (buffer As Byte(), offset As Integer, count As Integer)

Параметры

arraybuffer
Byte[]

Буфер, содержащий данные для записи в поток.

offset
Int32

Смещение байтов (начиная с нуля) в array, с которого начинается копирование байтов в поток.

count
Int32

Максимальное число байтов для записи.

Исключения

array имеет значение null.

offset и count описывают недопустимый диапазон в array.

offset или count является отрицательным значением.

Ошибка ввода/вывода.

-или-

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

-или-

.NET 8 и более поздних версий: базовый канал закрыт или отключен.

Поток закрыт.

Текущий экземпляр потока не поддерживает запись.

Примеры

Этот пример кода является частью более крупного примера, предоставленного Lock для метода .

// Write the original file data.
if ( fileStream->Length == 0 )
{
   tempString = String::Concat( lastRecordText, recordNumber.ToString() );
   fileStream->Write( uniEncoding->GetBytes( tempString ), 0, uniEncoding->GetByteCount( tempString ) );
}
// Write the original file data.
if(fileStream.Length == 0)
{
    tempString =
        lastRecordText + recordNumber.ToString();
    fileStream.Write(uniEncoding.GetBytes(tempString),
        0, uniEncoding.GetByteCount(tempString));
}
// Write the original file data.
if fileStream.Length = 0 then
    let tempString = lastRecordText + string recordNumber
    fileStream.Write(uniEncoding.GetBytes tempString, 0, uniEncoding.GetByteCount tempString)
' Write the original file data.
If aFileStream.Length = 0 Then
    tempString = _
        lastRecordText + recordNumber.ToString()
    aFileStream.Write(uniEncoding.GetBytes(tempString), _
        0, uniEncoding.GetByteCount(tempString))
End If

Комментарии

Этот метод переопределяет метод Write.

Параметр offset задает смещение байта в array (индекс буфера), с которого начинается копирование, а count параметр — число байтов, которые будут записаны в поток. Если операция записи выполнена успешно, текущая позиция потока будет расширена на количество записанных байтов. Если возникает исключение, текущая позиция потока не изменяется.

Примечание

Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись. Дополнительные сведения см. в разделе CanWrite.

Не прерывайте поток, выполняющий операцию записи. Несмотря на то, что после разблокировки потока приложение может успешно работать, прерывание может снизить производительность и надежность приложения.

Список распространенных операций с файлами и каталогами см. в разделе Общие задачи ввода-вывода.

См. также раздел

Применяется к