Nur aus Interesse: Warum verwendet man FileWriter.flush()?

Don83

Bekanntes Mitglied
Hallo,

nur aus Interesse:
wenn ich Daten schreibe schließe ich den FileWriter mit FileWriter.flush() gefolgt von FileWriter.close().
Warum reicht es nicht FileWriter.close() zu verwenden. Es macht mich verrückt, dass ich nur aus Gewohntheit Code verwende den ich nicht verstehe :D. Also kann mich jemand aufklären, warum das flush notwendig ist?
 

rme

Top Contributor
Ist nicht nötig, da close bereits flush aufruft. Aus der JavaDoc von close: "Closes the stream, flushing it first."

Flush braucht man nur, falls man Sachen schreiben will und sie in der Datei auftauchen sollen, bevor man sie schließt, z.B. bei Log-Dateien oder so, die immer geöffnet bleiben.
 
Zuletzt bearbeitet:

turtle

Top Contributor
Also kann mich jemand aufklären, warum das flush notwendig ist?

Also wirklich NOTWENDIG ist dies nicht, denn...

Ein flush() sagt dem Betriebssystem (OS), das es die letzten Bytes auch wirklich auf "Platte" schreiben soll. Normalerweise weisst du ja nicht, wann die geänderten Bytes wirklich in der Datei landen, da das OS das so macht, wie es für richtig hält. Oft sagt es beim Schreiben sofort, alles Ok, aber in Wirklichkeit wurden nur die Bytes in einem temporären Puffer geschrieben und irgendwann später, schreibt das OS die geänderten Puffer wirklich auf Platte. Wenn du aber sicherstellen möchtest, das das OS die Platte "bemühen" soll dient der flush()-Befehl.

Aber..
Wird eine Datei geschlossen, ruft das OS automatisch vorher in flush() auf, damit geänderte Daten auch wirklich auf Platte stehen.

Also ist das flush vor einem close in der Regel überflüssig

Aber nochmal Aber..
Wie du siehst sind wir hier nahe am OS und aus Java-Sicht wissen wir nicht, ob das OS auf dem die JVM läuft, dies genauso handhabt wie hier beschrieben wurde. Daher, um absolut sicher zu sein, baut man flush trotzdem wieder ein.

Klar, soweit? Parley:)
 
Zuletzt bearbeitet:

Don83

Bekanntes Mitglied
Aber nochmal Aber..
Wie du siehst sind wir hier nahe am OS und aus Java-Sicht wissen wir nicht, ob das OS auf dem die JVM läuft, dies genauso handhabt wie hier beschrieben wurde. Daher, um absolut sicher zu sein, baut man flush trotzdem wieder ein.

Ok also quasi nur eine Sicherheitsmaßnahme :). Alles klar und vielen Dank für die Aufklärung.
 

rme

Top Contributor
Das stimmt nicht so ganz - siehe mein Zitat aus den JavaDocs. Der Java-Code von close() ruft flush() wirklich explizit auf, man muss es daher nicht verwenden, wenn man close() aufruft.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Open Source für Anfänger, neues Projekt-> Interesse? Java Basics - Anfänger-Themen 36
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
G Wie verwendet man Enums Java Basics - Anfänger-Themen 1
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
H Methoden können nicht verwendet werden Java Basics - Anfänger-Themen 10
N Methoden Wohin mit einer Methode die in unterschiedlichen Klassen verwendet wird? Java Basics - Anfänger-Themen 5
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
I Datei wird von anderen Prozess verwendet Java Basics - Anfänger-Themen 10
B Interface NodeList wird als Klasse verwendet? Java Basics - Anfänger-Themen 8
D boolean te wird nicht verwendet Java Basics - Anfänger-Themen 2
P Für was werden Buffer verwendet? Java Basics - Anfänger-Themen 3
P Für was wird init() verwendet? Java Basics - Anfänger-Themen 3
Spin MVC Richtig verwendet? Java Basics - Anfänger-Themen 3
L Library nötig, obwohl nicht in Java-Code verwendet Java Basics - Anfänger-Themen 4
A junit test wann verwendet man "was"? Java Basics - Anfänger-Themen 4
J Wozu werden die anonyme Klassen verwendet? Java Basics - Anfänger-Themen 9
J Warum verwendet man Singleton? Java Basics - Anfänger-Themen 7
S String Konstante kann nicht fuer Annotation verwendet werden Java Basics - Anfänger-Themen 2
G JOptionPane.TOOL_TIP_TEXT_KEY wie verwendet man es? Java Basics - Anfänger-Themen 4
P Methode zum Überprüfen ob Datei verwendet wird? Java Basics - Anfänger-Themen 3
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
O Ausgabe als .txt Datei speichern mit FileWriter Java Basics - Anfänger-Themen 2
B FileWriter nicht sichtbar? Java Basics - Anfänger-Themen 4
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
D FileWriter schreibt nicht in Datei Java Basics - Anfänger-Themen 14
Z FileWriter erzeugt Symbole Java Basics - Anfänger-Themen 8
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
C FileWriter Problem. Java Basics - Anfänger-Themen 2
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
B FileWriter und JFileChooser zusammenfügen Java Basics - Anfänger-Themen 3
B FileWriter close() muss? Java Basics - Anfänger-Themen 8
Java-Insel Methoden FileWriter Methoden funktionieren nicht Java Basics - Anfänger-Themen 20
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
G Effizienzsteigerung von FileWriter als Logging Java Basics - Anfänger-Themen 4
L FileReader und Filewriter Java Basics - Anfänger-Themen 4
O Datentypen double in string über fileWriter... Java Basics - Anfänger-Themen 7
O OOP fileWriter Dateiname übergeben Java Basics - Anfänger-Themen 12
R Klassen FileWriter und CharSet Java Basics - Anfänger-Themen 4
Luk10 FileWriter Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
O Integer in File mit Filewriter schreiben - geht nicht richtig Java Basics - Anfänger-Themen 4
M Probleme mit FileWriter Java Basics - Anfänger-Themen 7
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
C FileWriter mit einer Variable Java Basics - Anfänger-Themen 8
S FileWriter - in neue Zeile schreiben!? Java Basics - Anfänger-Themen 19
K FileWriter Speicherort Java Basics - Anfänger-Themen 7
T OOP Speichern mit BufferedWriter(FileWriter(File)) Java Basics - Anfänger-Themen 2
S FileWriter Java Basics - Anfänger-Themen 3
S Filewriter schreibt einfach nicht Java Basics - Anfänger-Themen 6
G FileWriter -> neue Zeile Java Basics - Anfänger-Themen 13
F Seltsame Zeichen und kein Zeichenumbruch mit Filewriter Java Basics - Anfänger-Themen 4
G FileWriter Java Basics - Anfänger-Themen 3
G FileWriter Java Basics - Anfänger-Themen 6
T FileWriter Java Basics - Anfänger-Themen 5
M FileWriter Java Basics - Anfänger-Themen 18
J Problem mit FileWriter Java Basics - Anfänger-Themen 24
N Schneller als FileWriter? Java Basics - Anfänger-Themen 28
B Problem mit Filereader und filewriter Java Basics - Anfänger-Themen 20
M FileWriter-Problem Java Basics - Anfänger-Themen 2
P FileWriter schreiben? Java Basics - Anfänger-Themen 4
L Streamklassen, Filewriter und StringBuffer Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
G Prüfen mit FileWriter Java Basics - Anfänger-Themen 6
N Problem mit FileWriter Java Basics - Anfänger-Themen 2
S FileWriter-Variable nicht initialisiert Java Basics - Anfänger-Themen 3
R FileWriter: Dort wieder anfangen, wo er aufgehört hat Java Basics - Anfänger-Themen 4
S FileWriter funzt nicht :( Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben