BufferedStream.Flush 메서드

정의

이 스트림에 대한 모든 버퍼를 지우고 버퍼링된 데이터가 기본 디바이스에 기록되도록 합니다.

public:
 override void Flush();
public override void Flush();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()

예외

스트림이 삭제되었습니다.

데이터 원본 또는 리포지토리가 열려 있지 않습니다.

예제

이 코드 예제는 클래스에 제공된 더 큰 예제의 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"))

설명

명시적으로 호출 Flush 하거나 Close플러시하지 않는 한 스트림을 플러시하면 해당 기본 인코더가 플러시되지 않습니다.

생성자를 사용하여 BufferedStream 개체를 만드는 BufferedStream 동안 버퍼 크기를 지정하면 버퍼 크기에 도달하면 콘텐츠가 플러시됩니다. 예를 들어 버퍼 크기가 5바이트에 도달하면 이러한 BufferedStream bs = new BufferedStream(bs, 5) 코드가 콘텐츠를 플러시합니다.

버퍼를 자동으로 유지 관리하는 모든 읽기 및 쓰기 메서드 BufferedStream 는 읽기와 쓰기 간에 전환할 때 호출 Flush 할 필요가 없습니다.

적용 대상

추가 정보