FileStream.Flush Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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()
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
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.");
}
| 'W' ->
// Update the file.
try
fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
fileStream.Read(readText, textLength - 1, byteCount) |> ignore
tempString <- String(uniEncoding.GetChars readText, textLength - 1, byteCount)
recordNumber <- Int32.Parse tempString + 1
fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
fileStream.Write(string recordNumber |> uniEncoding.GetBytes, 0, byteCount)
fileStream.Flush()
printfn "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)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
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.