BufferedStream.Write Yöntem

Tanım

Aşırı Yüklemeler

Write(ReadOnlySpan<Byte>)

Geçerli arabelleğe alınan akışa bir bayt dizisi yazar ve bu arabelleğe alınan akıştaki geçerli konumu yazılan bayt sayısı kadar ilerletir.

Write(Byte[], Int32, Int32)

Baytları arabelleğe alınan akışa kopyalar ve arabelleğe alınan akış içindeki geçerli konumu yazılan bayt sayısına göre ilerler.

Write(ReadOnlySpan<Byte>)

Kaynak:
BufferedStream.cs
Kaynak:
BufferedStream.cs
Kaynak:
BufferedStream.cs

Geçerli arabelleğe alınan akışa bir bayt dizisi yazar ve bu arabelleğe alınan akıştaki geçerli konumu yazılan bayt sayısı kadar ilerletir.

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

Parametreler

buffer
ReadOnlySpan<Byte>

Bellek bölgesi. Bu yöntem, bu bölgenin içeriğini geçerli arabelleğe alınan akışa kopyalar.

Açıklamalar

CanWrite Geçerli örneğin yazmayı destekleyip desteklemediğini belirlemek için özelliğini kullanın. WriteAsync Geçerli arabelleğe alınan akışa zaman uyumsuz olarak yazmak için yöntemini kullanın.

Yazma işlemi başarılı olursa arabelleğe alınan akış içindeki konum yazılan bayt sayısına göre ilerler. Bir özel durum oluşursa arabelleğe alınan akış içindeki konum değişmeden kalır.

Şunlara uygulanır

Write(Byte[], Int32, Int32)

Kaynak:
BufferedStream.cs
Kaynak:
BufferedStream.cs
Kaynak:
BufferedStream.cs

Baytları arabelleğe alınan akışa kopyalar ve arabelleğe alınan akış içindeki geçerli konumu yazılan bayt sayısına göre ilerler.

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)

Parametreler

arraybuffer
Byte[]

Baytların geçerli arabelleğe alınan akışa kopyalandığı count bayt dizisi.

offset
Int32

Geçerli arabelleğe alınan akışa bayt kopyalamaya başlanacak arabellekteki uzaklık.

count
Int32

Geçerli arabelleğe alınan akışa yazılacak bayt sayısı.

Özel durumlar

Eksi offset uzunluğu değerinden arraycountküçük.

array, null değeridir.

offset veya count negatiftir.

Akış veya nullkapalıdır.

Akış yazmayı desteklemiyor.

Akış kapatıldıktan sonra yöntemler çağrıldı.

Örnekler

Bu kod örneği, sınıfı için BufferedStream sağlanan daha büyük bir örneğin parçasıdır.

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

Ayrıca bkz.

Şunlara uygulanır