En Java, flush()
método se usa en secuencias. Pero no entiendo cuál es el propósito de usar este método.
fin.flush();
dime algunas sugerencias.
java
java-stream
flush
Venkat
fuente
fuente
Cuando damos cualquier comando, las secuencias de ese comando se almacenan en la ubicación de memoria llamada búfer (una ubicación de memoria temporal) en nuestra computadora. Cuando toda la ubicación de la memoria temporal está llena, usamos flush (), que vacía todos los flujos de datos y los ejecuta por completo y da un nuevo espacio a los nuevos flujos en la ubicación temporal del búfer. -Espero que lo entiendas
fuente
BufferedOutputStream
,BufferedWriter
,ObjectOutputStream,
y lasPrintXXX
clases. Elflush()
método de cualquier otra corriente oWriter
no hace nada.flush()
No se requiere invocar explícitamente para aBufferedWriter
, siempre y cuando usted seaclose()
el escritor.close()
ejecuta una descarga por sí mismo.close()
llamadasflush()
, por lo que llamar a ambos es redundante cuando se usaFileWriter
sin búfer.Cuando escribe datos en una secuencia, no se escribe inmediatamente y se almacena en búfer. Por lo tanto, utilícelo
flush()
cuando necesite asegurarse de que todos los datos del búfer estén escritos.Necesitamos asegurarnos de que todas las escrituras se completen antes de cerrar la secuencia, y es por eso que
flush()
se llama en el archivo / escritor en búferclose()
.Pero si tiene el requisito de que todas sus escrituras se guarden en cualquier momento antes de cerrar la transmisión, use
flush()
.fuente
FilterOutputStream
yFilterWriter
.Si el búfer está lleno, todas las cadenas almacenadas en él se guardarán en el disco. ¡Los búferes se utilizan para evitar grandes ofertas! y arriba.
En la clase BufferedWriter que se coloca en las bibliotecas de Java, hay una línea como:
libro de referencia: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
páginas: 453
fuente
A menudo se accede a las transmisiones mediante hilos que periódicamente vacían su contenido y, por ejemplo, lo muestran en la pantalla, lo envían a un socket o lo escriben en un archivo. Esto se hace por motivos de rendimiento. Vaciar un flujo de salida significa que desea detenerse, esperar a que el contenido del flujo se transfiera por completo a su destino y luego reanudar la ejecución con el flujo vacío y el contenido enviado.
fuente
Por cuestiones de rendimiento, los primeros datos deben escribirse en Buffer. Cuando el búfer se llena, los datos se escriben en la salida (archivo, consola, etc.). Cuando el búfer está parcialmente lleno y desea enviarlo a la salida (archivo, consola), debe llamar al método flush () manualmente para escribir el búfer parcialmente lleno en la salida (archivo, consola).
fuente