code: public void write(byte[] b, int offset, int length)
          throws IOException
      {
          int o=offset;
          int l=length;
          while (l>0)
          {
              int c=capacity();
              
              if (_bypassBuffer && isCommitted() && size()==0 && l>c)
              {
                  // Bypass buffer
                  bypassWrite(b,o,l);
                  break;
              }
  
              if (l<c || !isFixed())
              {
                  // Write all
                  super.write(b,o,l);
                  break;
              }
              else
              {
                  // Write a block
                  super.write(b,o,c);
                  flush();
                  l-=c;
                  o+=c;
              }
          }
      }
docs: /* ------------------------------------------------------------