出力ファイル内の BufferedWriter テキストの切り捨て
この Java プログラムは、テーブルにデータを挿入するために CSV データを SQL コマンドに変換します。ただし、変換されたテキストの一部が出力 SQL ファイルに表示されないという問題が発生します。
ソース ファイルには 10,000 行を超えるデータが含まれており、プログラムは正しく機能しているように見えますが、プログラムの生成の途中で突然停止します。 SQL ステートメント。通常、この切り捨ては約 10,000 行の処理後に発生し、数百行が読み取られないままになります。
この問題を解決するには、OutputStream を閉じて、残りのデータがファイルに書き込まれるようにする必要があります。
out.close();
Java の出力バッファについて
A BufferedWriter は、書き込まれたデータを一時的に保存するバッファを内部で保持します。デフォルトのバッファ サイズは 8192 文字で、数百行のテキストを収容できます。バッファーが容量に達するか、ストリームが閉じられると、データは基礎となるファイルにフラッシュされます。
この場合、バッファー サイズは、処理されるデータのすべての行を保持するのに十分です。ただし、バッファがフラッシュされるまで、データは実際にはファイルに書き込まれません。 OutputStream を閉じるとフラッシュ プロセスが明示的にトリガーされ、変換されたすべてのテキストが SQL ファイルに確実に書き込まれます。
以上がJava BufferedWriter が SQL ファイルへの出力を切り捨てるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。