为什么com.google.protobuf.CodedOutputStream的方法flush不会调用output.flush()?

时间:2012-05-08 14:29:24

标签: java protocol-buffers

请解释为什么谷歌程序员不会调用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();
      }
  }

这有什么隐藏的原因吗?

1 个答案:

答案 0 :(得分:0)

因为您可能不想刷新基础流。例如,您可能只想刷新CodedOutputStream,以便您可以安全地将其他一些数据写入基础OutputStream,并确保它最终在CodedOutputStream之后写入数据。在这种情况下,您可能不希望将数据写入基础文件或套接字,因为批处理数据更有效。