BufferedWriter gibt Daten nicht vollständig aus
In Java wird die BufferedWriter-Klasse häufig zum Schreiben von Text auf die Festplatte verwendet. Obwohl zur Verbesserung der Leistung Puffertechniken eingesetzt werden, kann es vorkommen, dass nicht alle vorgesehenen Daten in die Ausgabedatei geschrieben werden.
Ein solcher Fall tritt auf, wenn der BufferedWriter-Puffer seine Standardgröße überschreitet. Standardmäßig ist die Puffergröße auf 8192 Zeichen eingestellt, was problemlos Hunderte von Datenzeilen aufnehmen kann. Wenn die Datenmenge jedoch die Pufferkapazität überschreitet, werden die Daten erst dann in die Datei geschrieben, wenn der Puffer explizit geleert wurde.
Problembeschreibung
Die Das in der Frage beschriebene Programm liest Daten aus einer CSV-Datei und wandelt sie in SQL-Befehle zum Einfügen in eine Tabelle um. Das Programm scheint ordnungsgemäß zu funktionieren, bis es mitten im Konvertierungsprozess plötzlich aufhört, in die Ausgabedatei zu schreiben.
Lösung
Um dieses Problem zu beheben, ist es wichtig, das Programm zu schließen der OutputStream, der dem BufferedWriter zugeordnet ist. Diese Aktion erzwingt das Leeren der verbleibenden Daten und stellt sicher, dass sie in die Ausgabedatei geschrieben werden. Die folgende Codezeile sollte hinzugefügt werden, bevor das Programm beendet wird:
out.close();
Durch das Schließen des OutputStream werden die gepufferten Daten sofort in die Datei geschrieben, wodurch das Problem der abgeschnittenen Ausgabe behoben wird.
Das obige ist der detaillierte Inhalt vonWarum schreibt mein Java BufferedWriter nicht alle Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!