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.
Не прерывайте поток, выполняющий операцию записи. Несмотря на то, что после разблокировки потока приложение может успешно работать, прерывание может снизить производительность и надежность приложения.
Список распространенных операций с файлами и каталогами см. в разделе Общие задачи ввода-вывода.
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл