3

Javaで開発しているアプリケーションでは、ImageIO APIを使用して画像をスケーリングし、ディレクトリに書き込んでから、画像を使用する準備ができていることをWebサーバーに通知しています。Webサーバーに信号を送信する前の最後の呼び出しはImageIO.write()メソッドですが、Webサーバーはその時点で生成された画像を見つけることができません。(数ミリ秒後、Webサーバーはそれらを見ることができます。)

私が思うに、ImageIO.write()は非同期で実行されています。たくさん検索しましたが、ImageIO.write()が同期操作なのか非同期操作なのかわかりませんでした。ImageIO.write()がプログラムのフローをブロックしていない場合、イメージが宛先ディレクトリに書き込まれるまで待機させる非ハッキング方法はありますか?

4

1 に答える 1

0

ImageIO.writeそれがブロックされていない ことは想像できません。

私の「仮定」は、ImageIO.writeが例外をスローできるという事実に基づいています。これは、バックグラウンドでの書き込みとしても、例外をスローするために書き込みが終了するまでブロックする必要があることを示唆しています。

バッファリングの問題である可能性がありますか?

やってみてくださいwhile (!file.exits()) Thread.sleep(25)または何かにストップギャップがあります

于 2012-08-07T09:16:25.007 に答える