Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método FileStream.Flush ()

 

Publicado: octubre de 2016

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

Espacio de nombres:   System.IO
Ensamblado:  mscorlib (en mscorlib.dll)

public override void Flush()

Exception Condition
IOException

Error de E/S.

ObjectDisposedException

La secuencia está cerrada.

Este método reemplaza Stream.Flush.

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

Codificador de la secuencia no se vacía a menos que se llame explícitamente a Flush o desechar el objeto. Establecer StreamWriter.AutoFlush a true significa que los datos se volcarán del búfer en la secuencia pero el estado del codificador no se vaciará. Esto permite al codificador mantener su estado (caracteres parciales) para que sea posible codificar el siguiente bloque de caracteres correctamente. Esta situación afecta a UTF8 y UTF7 donde ciertos caracteres sólo pueden codificarse después de que el codificador reciba el carácter o caracteres adyacentes.

Dado que se puede utilizar un búfer para lectura o escritura, Flush() realiza las dos funciones siguientes:

  • Cualquier dato escrito anteriormente en el búfer se copia en el archivo y se borra el búfer excepto el estado de su codificador.

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

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

Este ejemplo de código forma parte de un ejemplo mayor proporcionado para el Lock (método).

// 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.");
    }

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: