ホームページ >Java >&#&チュートリアル >Java BufferedWriter がすべてのデータを書き込まないのはなぜですか?

Java BufferedWriter がすべてのデータを書き込まないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-18 18:10:11732ブラウズ

Why Doesn't My Java BufferedWriter Write All the Data?

BufferedWriter がデータを完全に出力していません

Java では、テキストをディスクに書き込むために BufferedWriter クラスがよく使用されます。パフォーマンスを向上させるためにバッファリング技術を採用していますが、意図したデータをすべて出力ファイルに書き込むことができない場合があります。

そのようなインスタンスの 1 つは、BufferedWriter バッファーがデフォルトのサイズを超えたときに発生します。デフォルトでは、バッファ サイズは 8192 文字に設定されており、数百行のデータを簡単に収容できます。ただし、データ量がバッファ容量を超える場合、バッファが明示的にフラッシュされるまでデータはファイルに書き込まれません。

問題の説明

質問で説明されているプログラムは、CSV ファイルからデータを読み取り、それをテーブルに挿入する SQL コマンドに変換します。プログラムは、変換プロセスの途中で出力ファイルへの書き込みを突然停止するまでは正しく機能しているように見えます。

解決策

この問題を解決するには、プログラムを閉じることが重要です。 BufferedWriter に関連付けられた OutputStream。このアクションにより、残りのデータが強制的にフラッシュされ、出力ファイルに確実に書き込まれます。プログラムが終了する前に、次のコード行を追加する必要があります:

out.close();

OutputStream を閉じると、バッファリングされたデータがすぐにファイルに書き込まれ、出力が切り捨てられる問題が解決されます。

以上がJava BufferedWriter がすべてのデータを書き込まないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。