にファイルシステムへ書き込むわけではありません。
ストリームのフラッシュはOSのファイル出力バッファに書き込まれます。
そのため、実ファイル上に書き込まれている保証はこの時点ではありません。
Javaにはアプリからの書き込みをファイルシステムと同期させるための仕組みが用意され
ています。
ファイルシステムとの同期にはFileDescriptorクラスのsyncメソッドを使用します。
FileDescriptorはファイルストリームのgetFDメソッドから取得することが可能です。
参考:http://java.sun.com/javase/ja/6/docs/ja/api/java/io/FileOutputStream.html#getFD()
コード例
FileOutputStream out = new FileOutputStream(new File(foo)); out.write(bar); out.flush(); out.getFD().sync(); out.close();このテクニックはFileUtils.copyFileメソッドでも使用されています。
※ファイルシステムとの同期はパフォーマンスを大きく低下させる恐れがあります。
そのため、頻繁にsyncメソッドを呼ぶのは避けるべきです。
以上です。