2011-11-18 7 views

答えて

4

あなたがオラクルに

http://download.oracle.com/javase/1.4.2/docs/api/java/io/OutputStream.html#flush()

この出力ストリームをフラッシュを拡張ドキュメントを読んで、バッファリングされている出力データは強制的に書き込みます。 flushの一般的な規約は、それを呼び出すことは、以前に書き込まれたバイトが出力ストリームの実装によってバッファされていた場合、そのようなバイトは直ちにそれらの意図された宛先に書き込まれるべきであるという兆候です。

OutputStreamのflushメソッドは何もしません。

手段、方法自体は何もしませんし、それは抽象的なので、すべての基本となるクラスがフラッシングストリームの独自のバージョンを実装し、(書き込みキューで待機していない)を書くためにそれらを強制することができ

しかし、いずれにせよ、 ギョームが指摘されているので、とにかくそれを呼び出すのがよい方法です。後でストリームを使用する別の実装に置き換えると、ごめんなさい。

OSによっては、flush()は強制的にデータをOSに書き込む以上のことはしません。

フラッシュ()のFileOutputStreamに何もしません。バッファリングされたストリームでのみ有効です。

とjavadocがclose()の場合、すぐにストリームを終了する必要がないことに注意してください。

ストリームを閉じて最初にフラッシュします。ストリームが閉じられると、さらにwrite()またはflush()の呼び出しによってIOExceptionがスローされます。ただし、以前閉じたストリームを閉じることは効果がありません。関連


FileOutputStream.close is really slow when writing large file
flush in java.io.FileWriter

+0

しかし、入力ストリームと出力ストリームは、それを使用することがありますか?それとも呼ぶのは無意味ですか? – Warpzit

+0

私はバッファリングされたストリームを使用していないときは無意味です。バッファリングされたストリームは、OSとHWの基盤となるOSによって異なります。 –

+0

fileoutputstreamはそれを使用していないので、inputstreamも同じですか? – Warpzit

関連する問題