FileStream.Write Method

Definition

Overloads

Write(ReadOnlySpan<Byte>)

Записывает последовательность байтов в текущий файловый поток из диапазона только для чтения и перемещает текущую позицию внутри файлового потока на число записанных байтов.Writes a sequence of bytes from a read-only span to the current file stream and advances the current position within this file stream by the number of bytes written.

Write(Byte[], Int32, Int32)

Записывает блок байтов в файловый поток.Writes a block of bytes to the file stream.

Write(ReadOnlySpan<Byte>)

Записывает последовательность байтов в текущий файловый поток из диапазона только для чтения и перемещает текущую позицию внутри файлового потока на число записанных байтов.Writes a sequence of bytes from a read-only span to the current file stream and advances the current position within this file stream by the number of bytes written.

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))

Parameters

buffer
ReadOnlySpan<Byte>

Область памяти.A region of memory. Этот метод копирует содержимое данной области в текущий файловый поток.This method copies the contents of this region to the current file stream.

Remarks

Используйте свойство CanWrite, чтобы определить, поддерживает ли текущий экземпляр запись.Use the CanWrite property to determine whether the current instance supports writing. Используйте метод WriteAsync для асинхронной записи в текущий поток.Use the WriteAsync method to write asynchronously to the current stream.

Если операция записи выполнена успешно, расположение в потоке файлов увеличивается на число записанных байтов.If the write operation is successful, the position within the file stream advances by the number of bytes written. При возникновении исключения расположение в потоке файла остается неизменным.If an exception occurs, the position within the file stream remains unchanged.

Write(Byte[], Int32, Int32)

Записывает блок байтов в файловый поток.Writes a block of bytes to the file stream.

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

Parameters

array
Byte[]

Буфер, содержащий данные для записи в поток.The buffer containing data to write to the stream.

offset
Int32

Смещение байтов (начиная с нуля) в объекте array, с которого начинается копирование байтов в поток.The zero-based byte offset in array from which to begin copying bytes to the stream.

count
Int32

Максимальное число записываемых байтов.The maximum number of bytes to write.

Exceptions

Параметр array равен null.array is null.

offset и count описывают недопустимый диапазон в array.offset and count describe an invalid range in array.

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

Ошибка ввода/вывода.An I/O error occurred.

-или--or-

Возможно, другой поток вызвал непредвиденное изменение положения дескриптора файла операционной системы.Another thread may have caused an unexpected change in the position of the operating system's file handle.

Поток закрыт.The stream is closed.

Текущий экземпляр потока не поддерживает запись.The current stream instance does not support writing.

Examples

Этот пример кода является частью большого примера, приведенного для метода Lock.This code example is part of a larger example provided for the Lock method.

// 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 aFileStream.Length = 0 Then
    tempString = _
        lastRecordText + recordNumber.ToString()
    aFileStream.Write(uniEncoding.GetBytes(tempString), _
        0, uniEncoding.GetByteCount(tempString))
End If

Remarks

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

Параметр offset дает смещение байта в array (индекс буфера), с которого начинается копирование, а параметр count задает число байтов, которое будет записано в поток.The offset parameter gives the offset of the byte in array (the buffer index) at which to begin copying, and the count parameter gives the number of bytes that will be written to the stream. Если операция записи выполнена успешно, текущее расположение потока увеличивается на число записанных байтов.If the write operation is successful, the current position of the stream is advanced by the number of bytes written. При возникновении исключения текущее расположение потока не изменяется.If an exception occurs, the current position of the stream is unchanged.

Note

Используйте свойство CanWrite, чтобы определить, поддерживает ли текущий экземпляр запись.Use the CanWrite property to determine whether the current instance supports writing. Дополнительные сведения см. в разделе CanWrite.For additional information, see CanWrite.

Не прерывайте поток, выполняющий операцию записи.Do not interrupt a thread that is performing a write operation. Несмотря на то, что приложение может быть успешно запущено после разблокировки потока, прерывание может снизить производительность и надежность приложения.Although the application may appear to run successfully after the thread is unblocked, the interruption can decrease your application's performance and reliability.

Список общих операций с файлами и каталогами см. в разделе Общие задачи ввода-вывода.For a list of common file and directory operations, see Common I/O Tasks.

See also

Applies to