またまたJavaのお話
fileへの書き出しを行っていて、何故か途中までしか書き出されない・・・何故?
と思いコードをチェック、書き出しと同じタイミングで出力させると全部ある模様
散々悩んだ挙句、PrintWriterのclose()をしていないことに気が付く
解決
・・・・あぁ、やっぱりprogramは
”思った通りに動くのではなく、書いた通りに動く”
うむ、動かない時には殆どの場合自分が原因なんですね(苦笑
本当にメモ書きですみません
追伸
ちゃんと本を見たところ、
当り前ではありますが、close()をすることによってファイルがクローズされます
そして、ここからが重要
BufferedWriterでは出力がバッファリングされるので、クローズを忘れると、書き込んだつもりの文字列が欠けてしまうことがあるそうですまさに今回の状態ですね♪
因みにバッファリングは
”データをやり取りするときに、処理速度や転送速度の差を補うためにデータを専用に設けられた記憶領域一時的に保存しておくこと”
確かにバッファリングしてくれないと、データがどんどん抜け落ちていきますもんね・・(実際にはどうなるんでしょうか・・・
fileへの書き出しを行っていて、何故か途中までしか書き出されない・・・何故?
と思いコードをチェック、書き出しと同じタイミングで出力させると全部ある模様
散々悩んだ挙句、PrintWriterのclose()をしていないことに気が付く
解決
・・・・あぁ、やっぱりprogramは
”思った通りに動くのではなく、書いた通りに動く”
うむ、動かない時には殆どの場合自分が原因なんですね(苦笑
本当にメモ書きですみません
追伸
ちゃんと本を見たところ、
当り前ではありますが、close()をすることによってファイルがクローズされます
そして、ここからが重要
BufferedWriterでは出力がバッファリングされるので、クローズを忘れると、書き込んだつもりの文字列が欠けてしまうことがあるそうですまさに今回の状態ですね♪
因みにバッファリングは
”データをやり取りするときに、処理速度や転送速度の差を補うためにデータを専用に設けられた記憶領域一時的に保存しておくこと”
確かにバッファリングしてくれないと、データがどんどん抜け落ちていきますもんね・・(実際にはどうなるんでしょうか・・・
※コメント投稿者のブログIDはブログ作成者のみに通知されます