public void write(byte[] b,int o,int len){
  while (len > 0) {
    int n=len <= availLen ? len : availLen;
    System.arraycopy(b,o,buf,offset,n);
    incrementOffset(n);
    len-=n;
    o+=n;
  }
}

public void write ( byte [ ] b , int o , int len ) { while ( len > 0 ) { int n = len <= availLen ? len : availLen ; System . arraycopy ( b , o , buf , offset , n ) ; incrementOffset ( n ) ; len -= n ; o += n ; } }
this should rarely be used , the normal way ( to avoid double copying ) is to get the buffer and write directly to it
