En Java, la flush()
méthode est utilisée dans les flux. Mais je ne comprends pas à quoi sert cette méthode?
fin.flush();
dites-moi quelques suggestions.
java
java-stream
flush
Venkat
la source
la source
Lorsque nous donnons une commande, les flux de cette commande sont stockés dans l'emplacement de mémoire appelé buffer (un emplacement de mémoire temporaire) dans notre ordinateur. Lorsque tout l'emplacement de la mémoire temporaire est plein, nous utilisons flush (), qui vide tous les flux de données et les exécute complètement et donne un nouvel espace aux nouveaux flux dans l'emplacement temporaire du tampon. -J'espère que vous comprendrez
la source
BufferedOutputStream
,BufferedWriter
,ObjectOutputStream,
et lesPrintXXX
classes. Laflush()
méthode de tout autre flux ouWriter
ne fait rien.flush()
explicite n'est pas obligatoire pour aBufferedWriter
, tant que vous êtesclose()
l'auteur.close()
exécute un flush lui-même.close()
appelsflush()
, donc appeler les deux est redondant lors de l'utilisationFileWriter
sans tampon.Lorsque vous écrivez des données dans un flux, elles ne sont pas écrites immédiatement et elles sont mises en mémoire tampon. Utilisez donc
flush()
lorsque vous devez être sûr que toutes vos données du tampon sont écrites.Nous devons nous assurer que toutes les écritures sont terminées avant de fermer le flux, et c'est pourquoi il
flush()
est appelé dans le fichier / rédacteur en mémoire tamponclose()
.Mais si vous avez besoin que toutes vos écritures soient enregistrées à tout moment avant de fermer le flux, utilisez
flush()
.la source
FilterOutputStream
etFilterWriter
.Si la mémoire tampon est pleine, toutes les chaînes qui y sont mises en mémoire tampon seront enregistrées sur le disque. Les tampons sont utilisés pour éviter les grosses affaires! et les frais généraux.
Dans la classe BufferedWriter qui est placée dans les bibliothèques java, il y a une ligne comme:
livre de référence: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
pages: 453
la source
Les flux sont souvent accédés par des threads qui vident périodiquement leur contenu et, par exemple, l'affiche à l'écran, l'envoie vers une socket ou l'écrit dans un fichier. Ceci est fait pour des raisons de performances. Le vidage d'un flux de sortie signifie que vous souhaitez arrêter, attendre que le contenu du flux soit complètement transféré vers sa destination, puis reprendre l'exécution avec le flux vide et le contenu envoyé.
la source
Pour des problèmes de performances, les premières données doivent être écrites dans Buffer. Lorsque la mémoire tampon est pleine, les données sont écrites sur la sortie (fichier, console, etc.). Lorsque le tampon est partiellement rempli et que vous voulez l'envoyer vers la sortie (fichier, console), vous devez appeler la méthode flush () manuellement afin d'écrire le tampon partiellement rempli vers la sortie (fichier, console).
la source