Exportar (0) Imprimir
Expandir todo

FileStream.Flush (Método)

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

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

public override void Flush ()
public void Flush ()
public override function Flush ()

Tipo de excepciónCondición

IOException

Se produce un error de E/S.

ObjectDisposedException

La secuencia está cerrada.

Este método reemplaza a Flush.

Vaciar la secuencia no hará que se vacíe su correspondiente codificador subyacente, a menos que se llame explícitamente a Flush o a Close. Al establecer el valor de AutoFlush en true, los datos del búfer se vacían en la secuencia, pero no se vacía el estado del codificador. Esto permite al codificador mantener su estado (caracteres parciales) de forma que sea posible codificar el siguiente bloque de caracteres correctamente. Este escenario afecta a UTF8 y UTF7, donde ciertos caracteres sólo se pueden codificar después de que el codificador reciba el carácter o los caracteres adyacentes.

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

  1. En el archivo se copia cualquier dato anteriormente escrito en el búfer y se borra dicho búfer excepto en lo que se refiere al estado de su codificador.

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

Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase Lock.

// 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' : 
    try {
        fileStream.Seek(textLength, SeekOrigin.Begin);
        fileStream.Read(readText, 
            textLength - 1, byteCount);
        tempString = new String(uniEncoding.GetChars(
            readText, textLength - 1, byteCount));
        recordNumber = Int32.Parse(tempString)+1;
        fileStream.Seek(textLength, SeekOrigin.Begin);
        fileStream.Write(uniEncoding.GetBytes(
            (new Integer( recordNumber)).ToString()),
            0, byteCount);
        fileStream.Flush();
        Console.WriteLine("Record has been updated.");
    }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft