Heim > Java > javaLernprogramm > Warum führt mein Java BufferedWriter zu unvollständigen Schreibvorgängen in eine Datei?

Warum führt mein Java BufferedWriter zu unvollständigen Schreibvorgängen in eine Datei?

Patricia Arquette
Freigeben: 2024-12-31 13:58:10
Original
634 Leute haben es durchsucht

Why Does My Java BufferedWriter Result in Incomplete Writes to a File?

Problem mit unvollständigem BufferedWriter-Schreiben

Im bereitgestellten Java-Programm stößt der Code auf ein Problem, bei dem der BufferedWriter nicht alle beabsichtigten Daten vollständig schreiben kann Text in die Ausgabedatei nyccrash.sql. Dies führt zu unvollständigen SQL-Anweisungen und fehlenden Daten in der Ausgabe.

Die Ursache für den unvollständigen Schreibvorgang liegt in der Standardpuffergröße von BufferedWriter, die auf 8192 Zeichen eingestellt ist. Dies bedeutet, dass die Schreibvorgänge an den BufferedWriter nicht sofort in die zugrunde liegende Datei übertragen werden, bis der Puffer seine Kapazität erreicht.

Im gegebenen Szenario verarbeitet das Programm über 10.000 Zeilen Eingabedaten und generiert eine große Menge von SQL-Strings, die die Puffergröße überschreiten. Infolgedessen wird der Puffer voll und enthält mehrere hundert Zeilen ungeschriebener Daten.

Um dieses Problem zu beheben, ist es wichtig, den Puffer manuell zu leeren, indem Sie die Methode close() auf dem BufferedWriter aufrufen, nachdem die Schreibvorgänge abgeschlossen sind . Diese Aktion stellt sicher, dass alle verbleibenden Daten im Puffer in die Datei geschrieben werden, bevor sie geschlossen wird, wodurch das Problem des unvollständigen Schreibens behoben wird.

Der korrigierte Code unten enthält den Aufruf von close():

...
            while ((line = in.readLine()) != null) {
                String[] esa = line.split(",");
                sqlstr = "insert into nyccrash values (" + esa[0] + ", " + esa[1] + ", " + esa[2] + ", " + esa[3] + ", " + esa[4] + ", " + esa[5] + ", " + esa[6] + ");\n";
                out.write(sqlstr);
            }
            out.close();
        }
...
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum führt mein Java BufferedWriter zu unvollständigen Schreibvorgängen in eine Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage