BufferedStream.Write Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Write(ReadOnlySpan<Byte>) |
Записывает последовательность байтов в текущий буферизованный поток и перемещает текущую позицию внутри буферизованного потока на число записанных байтов. |
Write(Byte[], Int32, Int32) |
Копирует байты в буферизованный поток и перемещает текущую позицию в буферизованном потоке вперед на количество записанных байтов. |
Write(ReadOnlySpan<Byte>)
- Исходный код:
- BufferedStream.cs
- Исходный код:
- BufferedStream.cs
- Исходный код:
- BufferedStream.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>
Область памяти. Этот метод копирует содержимое данной области в текущий буферизованный поток.
Комментарии
Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись. Используйте метод для WriteAsync асинхронной записи в текущий буферный поток.
Если операция записи выполнена успешно, позиция в буферизованном потоке увеличивается на количество записанных байтов. Если возникает исключение, позиция в буферизованном потоке остается неизменной.
Применяется к
Write(Byte[], Int32, Int32)
- Исходный код:
- BufferedStream.cs
- Исходный код:
- BufferedStream.cs
- Исходный код:
- BufferedStream.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[]
Массив байтов, из которого необходимо скопировать count
байтов в текущий буферизованный поток.
- offset
- Int32
Смещение в буфере, с которого необходимо начать копирование байтов в текущий буферизованный поток.
- count
- Int32
Количество байтов, которые необходимо записать в текущий буферизованный поток.
Исключения
Длина array
минус offset
меньше count
.
array
имеет значение null
.
offset
или count
является отрицательным значением.
Поток закрыт или его значение равно null
.
Поток не поддерживает запись.
Методы были вызваны после закрытия потока.
Примеры
Этот пример входит в состав более крупного примера использования класса BufferedStream.
// Send the data using the BufferedStream.
Console::WriteLine( "Sending data using BufferedStream." );
startTime = DateTime::Now;
for ( int i = 0; i < numberOfLoops; i++ )
{
bufStream->Write( dataToSend, 0, dataToSend->Length );
}
bufStream->Flush();
bufferedTime = (DateTime::Now - startTime).TotalSeconds;
Console::WriteLine( "{0} bytes sent in {1} seconds.\n", (numberOfLoops * dataToSend->Length).ToString(), bufferedTime.ToString( "F1" ) );
// Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.");
startTime = DateTime.Now;
for(int i = 0; i < numberOfLoops; i++)
{
bufStream.Write(dataToSend, 0, dataToSend.Length);
}
bufStream.Flush();
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes sent in {1} seconds.\n",
numberOfLoops * dataToSend.Length,
bufferedTime.ToString("F1"));
// Send the data using the BufferedStream.
printfn "Sending data using BufferedStream."
let startTime = DateTime.Now
for _ = 0 to numberOfLoops - 1 do
bufStream.Write(dataToSend, 0, dataToSend.Length)
bufStream.Flush()
let bufferedTime = (DateTime.Now - startTime).TotalSeconds
printfn $"{numberOfLoops * dataToSend.Length} bytes sent in {bufferedTime:F1} seconds.\n"
' Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.")
startTime = DateTime.Now
For i As Integer = 1 To numberOfLoops
bufStream.Write(dataToSend, 0, dataToSend.Length)
Next i
bufStream.Flush()
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes sent In {1} seconds." & vbCrLf, _
numberOfLoops * dataToSend.Length, _
bufferedTime.ToString("F1"))
См. также раздел
- CanWrite
- Read(Byte[], Int32, Int32)
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл