code: @Override
  	public void write(byte data[], int offset, int len) throws IOException
      {
          if ((capacity - size) < len)
              flush();
          
          // Do we have enough space ?
          if (capacity >= len)
          {
              System.arraycopy(data, offset, buffer, size, len);
              size += len;
          }
          else
          {
              // Too big, write it directly ...
              out.write(data, offset, len);
          }
      }
docs: /*
  (non-Javadoc)
  @see java.io.FilterOutputStream#write(byte[], int, int)