通过


BufferedStream.Write 方法

定义

重载

名称 说明
Write(ReadOnlySpan<Byte>)

将字节序列写入当前缓冲流,并通过写入的字节数推进此缓冲流中的当前位置。

Write(Byte[], Int32, Int32)

将字节复制到缓冲流,并通过写入的字节数推进缓冲流中的当前位置。

Write(ReadOnlySpan<Byte>)

Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
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)

Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
BufferedStream.cs
Source:
BufferedStream.cs

将字节复制到缓冲流,并通过写入的字节数推进缓冲流中的当前位置。

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

参数

bufferarray
Byte[]
offset
Int32

缓冲区中开始将字节复制到当前缓冲流的偏移量。

count
Int32

要写入当前缓冲流的字节数。

例外

减号offset长度array小于 count

arraynull

offsetcount 为负数。

流已关闭或 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,
    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"))

另请参阅

适用于