FileStream.Flush Método

Definición

Borra los búferes de esta secuencia y hace que todos los datos almacenados en los búferes se escriban en el archivo.

Sobrecargas

Flush()

Borra los búferes de esta secuencia y hace que todos los datos almacenados en los búferes se escriban en el archivo.

Flush(Boolean)

Borra los búferes de esta secuencia, hace que todos los datos almacenados en los búferes se escriban en el archivo y borra también todos los búferes de archivos intermedios.

Flush()

Borra los búferes de esta secuencia y hace que todos los datos almacenados en los búferes se escriban en el archivo.

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

Excepciones

Error de E/S.

La secuencia está cerrada.

Ejemplos

Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el Lock método .

// Update the file.
case 'W':
   try
   {
      fileStream->Seek( textLength, SeekOrigin::Begin );
      fileStream->Read( readText, textLength - 1, byteCount );
      tempString = gcnew String( uniEncoding->GetChars( readText, textLength - 1, byteCount ) );
      recordNumber = Int32::Parse( tempString ) + 1;
      fileStream->Seek( textLength, SeekOrigin::Begin );
      fileStream->Write( uniEncoding->GetBytes( recordNumber.ToString() ), 0, byteCount );
      fileStream->Flush();
      Console::WriteLine( "Record has been updated." );
   }
// Update the file.
case 'W':
    try
    {
        fileStream.Seek(textLength,
            SeekOrigin.Begin);
        fileStream.Read(
            readText, textLength - 1, byteCount);
        tempString = new String(
            uniEncoding.GetChars(
            readText, textLength - 1, byteCount));
        recordNumber = int.Parse(tempString) + 1;
        fileStream.Seek(
            textLength, SeekOrigin.Begin);
        fileStream.Write(uniEncoding.GetBytes(
            recordNumber.ToString()),
            0, byteCount);
        fileStream.Flush();
        Console.WriteLine(
            "Record has been updated.");
    }
' Update the file.
Case "W"C
    Try
        aFileStream.Seek(textLength, _
            SeekOrigin.Begin)
        aFileStream.Read( _
            readText, textLength - 1, byteCount)
        tempString = New String( _
            uniEncoding.GetChars( _
            readText, textLength - 1, byteCount))
        recordNumber = _
            Integer.Parse(tempString) + 1
        aFileStream.Seek( _
            textLength, SeekOrigin.Begin)
        aFileStream.Write(uniEncoding.GetBytes( _
            recordNumber.ToString()), 0, byteCount)
        aFileStream.Flush()
        Console.WriteLine( _
            "Record has been updated.")

Comentarios

Este método invalida Stream.Flush.

Cuando se llama al FileStream.Flush método , también se vacía el búfer de E/S del sistema operativo.

El codificador de una secuencia no se vacía a menos que se llame Flush explícitamente o elimine el objeto. Establecer StreamWriter.AutoFlush en true significa que los datos se vaciarán del búfer a la secuencia, pero el estado del codificador no se vaciará. Esto permite al codificador mantener su estado (caracteres parciales) para que pueda codificar correctamente el siguiente bloque de caracteres. Este escenario afecta a UTF8 y UTF7, donde determinados caracteres solo se pueden codificar después de que el codificador reciba el carácter o caracteres adyacentes.

Dado que se puede usar un búfer para leer o escribir, Flush() realiza las dos funciones siguientes:

  • Los datos escritos anteriormente en el búfer se copian en el archivo y el búfer se borra, excepto por su estado de codificador.

  • Si BufferedStream.CanSeek es true y los datos se copiaron anteriormente del archivo en el búfer para su lectura, la posición actual dentro del archivo se reduce por el número de bytes no leídos en el búfer. A continuación, se borra el búfer.

Use la sobrecarga del Flush(Boolean) método cuando desee asegurarse de que todos los datos almacenados en búferes intermedios se escriben en el disco.

Consulte también

Se aplica a

Flush(Boolean)

Borra los búferes de esta secuencia, hace que todos los datos almacenados en los búferes se escriban en el archivo y borra también todos los búferes de archivos intermedios.

public:
 virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)

Parámetros

flushToDisk
Boolean

true para vaciar todos los búferes de archivos intermedios; de lo contrario, false.

Comentarios

Use esta sobrecarga cuando desee asegurarse de que todos los datos almacenados en búferes intermedios se escriben en el disco.

Cuando se llama al Flush método , también se vacía el búfer de E/S del sistema operativo.

Consulte también

Se aplica a