BufferedWriter-Textkürzung in der Ausgabedatei
Dieses Java-Programm wandelt CSV-Daten in SQL-Befehle zum Einfügen von Daten in eine Tabelle um. Es tritt jedoch ein Problem auf, bei dem nicht der gesamte transformierte Text in der SQL-Ausgabedatei angezeigt wird.
Die Quelldatei enthält über 10.000 Datenzeilen und das Programm funktioniert scheinbar ordnungsgemäß, bricht jedoch mitten in der Generierung abrupt ab SQL-Anweisung. Diese Kürzung erfolgt normalerweise nach der Verarbeitung von etwa 10.000 Zeilen, sodass mehrere hundert Zeilen ungelesen bleiben.
Um dieses Problem zu beheben, muss OutputStream geschlossen werden, um sicherzustellen, dass alle verbleibenden Daten in die Datei geschrieben werden:
out.close();
Ausgabepuffer in Java verstehen
Ein BufferedWriter verwaltet intern ein Puffer, der geschriebene Daten vorübergehend speichert. Die Standardpuffergröße beträgt 8192 Zeichen und bietet Platz für Hunderte von Textzeilen. Wenn der Puffer seine Kapazität erreicht oder der Stream geschlossen wird, werden die Daten in die zugrunde liegende Datei geschrieben.
In diesem Fall reicht die Puffergröße aus, um alle verarbeiteten Datenzeilen aufzunehmen. Allerdings werden die Daten erst dann tatsächlich in die Datei geschrieben, wenn der Puffer geleert ist. Das Schließen des OutputStream löst explizit den Löschvorgang aus und stellt sicher, dass der gesamte transformierte Text in die SQL-Datei geschrieben wird.
Das obige ist der detaillierte Inhalt vonWarum kürzt mein Java BufferedWriter die Ausgabe in meine SQL-Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!