[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Objects' (#rtl)

# TBufStream.Flush

FLush data from buffer, and write it to stream.

## Declaration

Source position: objects.pp line 355

`procedure TBufStream.Flush; virtual;`

## Description

When the stream is in write mode, the contents of the buffer are written to disk, and the buffer position is set to zero. When the stream is in read mode, the buffer position is set to zero.

## Errors

Write errors may occur if the file was in write mode. see Write for more info on the errors.

## See also

TStream.Close |  | Close the stream
TBufStream.Init |  | Initialize an instance of TBufStream and open the file.
TBufStream.Done |  | Close the file and cleans up the instance.

## Example

    Program ex15;

    { Program to demonstrate the TStream.Flush method }

    Uses Objects;

    Var L : String;
        P : PString;
        S : PBufStream; { Only one with Flush implemented. }

    begin
      L:='Some constant string';
      { Buffer size of 100 }
      S:=New(PBufStream,Init('test.dat',stcreate,100));
      Writeln ('Writing "',L,'" to stream with handle ',S^.Handle);
      S^.WriteStr(@L);
      { At this moment, there is no data on disk yet. }
      S^.Flush;
      { Now there is. }
      S^.WriteStr(@L);
      { Close calls flush first }
      S^.Close;
      Writeln ('Closed stream. File handle is ',S^.Handle);
      S^.Open (stOpenRead);
      P:=S^.ReadStr;
      L:=P^;
      DisposeStr(P);
      Writeln ('Read "',L,'" from stream with handle ',S^.Handle);
      S^.Close;
      Dispose (S,Done);
    end.