3

Googleコーダーがflush()メソッド を呼び出さない理由を教えてください。

  /**
  * Flushes the stream and forces any buffered bytes to be written.  This
  * does not flush the underlying OutputStream.
  */
  public void flush() throws IOException {
      if (output != null) {
          refreshBuffer();
      }
  }

これには隠された理由がありますか?

4

1 に答える 1

0

基になるストリームをフラッシュしたくない場合があるためです。たとえば、CodedOutputStream他のデータを基になるデータに安全に書き込み、最終的に のデータのOutputStream後に書き込まれるようにするために、 のみをフラッシュしたい場合がありCodedOutputStreamます。この場合、データをバッチ化する方が効率的であるため、まだデータを基礎となるファイルまたはソケットに書き出す必要はありません。

于 2013-09-19T23:29:46.090 に答える