In Java wird die flush()
Methode in Streams verwendet. Aber ich verstehe nicht, wozu diese Methode eigentlich dient.
fin.flush();
Sag mir ein paar Vorschläge.
java
java-stream
flush
Venkat
quelle
quelle
Wenn wir einen Befehl erteilen, werden die Streams dieses Befehls in dem Speicher gespeichert, der als Puffer (ein temporärer Speicherort) auf unserem Computer bezeichnet wird. Wenn der gesamte temporäre Speicherplatz voll ist, verwenden wir flush (), das alle Datenströme löscht und vollständig ausführt und neuen Streams im temporären Speicherort des Puffers neuen Speicherplatz gibt. -Hoffentlich wirst du verstehen
quelle
BufferedOutputStream
,BufferedWriter
,ObjectOutputStream,
und diePrintXXX
Klassen. Dieflush()
Methode eines anderen Streams oderWriter
tut nichts.flush()
explizites Aufrufen ist für a nicht erforderlichBufferedWriter
, solange Sieclose()
der Autor sind.close()
führt selbst einen Flush aus.close()
Aufrufeflush()
, sodass das Aufrufen beider Anrufe bei VerwendungFileWriter
ohne Puffer redundant ist .Wenn Sie Daten in einen Stream schreiben, werden diese nicht sofort geschrieben und gepuffert. Verwenden
flush()
Sie diese Option, wenn Sie sicherstellen müssen, dass alle Ihre Daten aus dem Puffer geschrieben sind.Wir müssen sicherstellen, dass alle Schreibvorgänge abgeschlossen sind, bevor wir den Stream schließen. Deshalb
flush()
wird er in Datei- / gepufferten Writern aufgerufenclose()
.Wenn Sie jedoch festlegen müssen, dass alle Ihre Schreibvorgänge jederzeit gespeichert werden, bevor Sie den Stream schließen, verwenden Sie
flush()
.quelle
FilterOutputStream
und garantiertFilterWriter
.Wenn der Puffer voll ist, werden alle darauf gepufferten Zeichenfolgen auf der Festplatte gespeichert. Puffer werden verwendet, um Big Deals zu vermeiden! und Overhead.
In der BufferedWriter-Klasse, die in Java-Bibliotheken platziert ist, gibt es eine Zeile wie:
Nachschlagewerk: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
Seiten: 453
quelle
Auf Streams wird häufig von Threads zugegriffen, die ihren Inhalt regelmäßig leeren und ihn beispielsweise auf dem Bildschirm anzeigen, an einen Socket senden oder in eine Datei schreiben. Dies erfolgt aus Leistungsgründen. Das Leeren eines Ausgabestreams bedeutet, dass Sie anhalten, warten möchten, bis der Inhalt des Streams vollständig an sein Ziel übertragen wurde, und dann die Ausführung mit leerem Stream und gesendetem Inhalt fortsetzen möchten.
quelle
Bei Leistungsproblemen müssen die ersten Daten in den Puffer geschrieben werden. Wenn der Puffer voll ist, werden Daten in die Ausgabe geschrieben (Datei, Konsole usw.). Wenn der Puffer teilweise gefüllt ist und Sie ihn an die Ausgabe (Datei, Konsole) senden möchten, müssen Sie die Methode flush () manuell aufrufen, um einen teilweise gefüllten Puffer in die Ausgabe (Datei, Konsole) zu schreiben.
quelle