code: public void flushTo(OutputStream out) throws IOException {
  		int n1 = _flushPosition / _bufferSize;
  		int n2 = _position / _bufferSize;
  		if (n1 < n2) {
  			flushTo(Channels.newChannel(out));
  		}
  	}
docs: Tries to copy as much bytes as possible from this buffer to
  the given channel. See {@link #flushTo(WritableByteChannel)}
  for further information.
  @param out the output stream to write to
  @throws IOException if the buffer could not be flushed